귀하는 올바른 방향으로 책임을 분담하고 있습니다. 뷰/컨트롤러는 모델을 신경 쓰지 않습니다.
은 기본적으로 당신은 모델의 아이디어 작업 할 -> 제어 -
당신이 달성하고자하는 내용에 따라 (자바 제어 /보기의 역할은 일반적으로 병합하지만)>보기, 당신은 단순히 제공 할 수 고객 목록을 유지하는 TableModel
구현입니다. 내부적으로이 아마 단순 위해, Collection
어떤 종류의 관리를 받게되고, 다음 사용자에게 모델의 "쇼"내용에 사용되는 어떤 종류의
JTable
의 List
을 말한다. 그런 다음 사용자가보기를 탐색하고 검색하고 필터링하고 내용을 편집 할 수 있습니다.
JTable
은 개별 셀에 대한 변경 사항을 모델에보고하여 내부 Customer
개체를 적절하게 업데이트 할 수 있습니다.
이제는 TableModel
을 직접 입력 할 필요가 없습니다. Customer
개체를 Collection
으로 직접 모델링하고 나중에 해당 모델에 제공 할 수 있습니다. 그것은 당신이 그것을 어떻게 구현하길 원하는지에 달려 있습니다.
UPDATE는
정말 당신의 디자인에 온다
을 (내가 코멘트에 넣고 있지만, 공간이 부족 거라고) 당신이 어떻게 당신에게 데이터를 표현하고자합니다.
저는 개인적으로 논리적인 경로/연결/관계를 시도하고 있습니다.
Customer
이 있다고합시다. 해당 고객에게는 많은 Contacts
명이있을 수 있습니다. 나에게 Customer
및 Contact
의 객체 표현을 만들고 Customer
객체를 통해 고객 연락처에 직접 액세스 할 수 있습니다 (예 : Customer.getContacts
).
다른 사람들은 ContactsFactory
을 대신 사용해야하는 것이 더 적절하다고 생각할 수도 있습니다. (개인적으로, 나는 둘 다 할 것이고, Customer.getContacts
메쏘드는 ContactsFactory.getContactsFor(Customer)
을 당신을 대신하여 부를 것입니다 - 이것은 데이터 객체의 생성이 중앙 집중적이고 잘 문서화 된 도메인에 남아있게합니다)
그러나 나는 직접적인 수단을 제공하지 않을 것입니다. SalesHistory
과 같은 것을 얻으십시오. 내 견해로는, 둘 사이에는 "약한"연결 만 존재합니다 (기술적으로는 존재하지 않지만 인수를 위해서 - 나는 Customer 객체를 다루기를 원한다면, 나는 그것과 직접적으로 관련된 속성만을 처리해야합니다. 고객).
그러나 나는 Customer
을 전달하고 모든 SalesHisorty
(또는의 필터)을 반환하는 수단을 제공하는 일종의 SalesHistoryFactory
을 가지고 있습니다.
엔티티 뷰로 변환하는 데이터베이스의 양은 사람들이 데이터에 액세스 할 수있는 방법에 따라 다릅니다.
중요한 접근법 중 하나는 방정식에서 데이터베이스를 제거하는 것입니다. 데이터베이스 구조가 때로는 그럴 수 있습니다. 당신은 또한 "만약에"의 관점에서 그것을보고 싶다.
데이터가 웹 인터페이스 (예 : JSON)에서 제공 되었다면 어떻게 처리할까요? 개체 모델로 처리 할 수 있습니까?
나는 많은 모델을 Interfaces
으로 구현할 것이다. 이렇게하면 필요에 따라 여러 구현을 개발할 수 있습니다.
하지만 그건 MHO "어떻게하면"데이터베이스를 변경 했습니까? 데이터 모델은 어떻게 처리할까요?
여기서는 데이터베이스의 역할에 대해 설명하지 않습니다. 이상적으로 이것은 런타임 메모리에 적합 할 수있는 것보다 더 큰 모든 데이터의 영구 저장 장치입니다. 데이터베이스를 업데이트해야하며 메모리에있는 객체의 로컬 (부분 집합) 캐시에 대해 걱정하십시오. – Randy
Java EE 앱은 무엇입니까? 메모리에 객체를 캐시 할 수 있습니까? 또는 필요에 따라 선택/업데이트 하시겠습니까? 클라이언트 앱에서 클라이언트 - 서버 앱으로 이동하는 데 많은 변화가 필요하지 않은 앱을 프로그래밍하는 방법을 배우는 데 집중하려고합니다. – DamX9