2009-07-28 5 views
1

나는이 문제에 대한 올바른 아키텍처를 갖고있다. Person 객체에 하나 이상의 Attribute 객체가 연관되어 있다고 가정 해 보겠습니다. 인터페이스의 경우 Person 객체, Person 뷰 및 해당 Person과 연관된 각 Attribute 객체를 나타내는 탭 페이지가있는 다른 컨트롤 목록이 있습니다. 그 뒤에있는 MVC 아키텍처는 어떻게 구성 될까요?MVC 아키텍처 - 목록을 표현하는 방법

현재 저는 Attribute 모델 목록이있는 Person에 대해 하나의 '모델'을 가지고 있습니다. 내가 볼 수있는 컨트롤러가 있고 Person 모델의 각 Attribute 모델에 연결된 각 Attribute에 대한 하위 컨트롤러가있는 AttributeView 컨트롤러를 만들려고했습니다 ... 모든 적절한 상호 작용을 처리 할 수 ​​있다고 생각합니다. 그 아키텍처와 함께,하지만 나는 그것이 최고의 구현을 확신하지 않습니다. 합리적인 것 같습니까? 아니면이 문제를 해결할 더 좋은 방법이 있습니까?

감사합니다.

답변

0

저라면 저에게 주 컨트롤러에 속성에 대한 하위 컨트롤러에 대해 알릴 필요가 없습니다. 대신보기 수준에서 그 연결을 만들 것입니다. 그래서 Person (AttributeModels을 전달하는 방법)을 알고있는 PersonView를 가지거나, 그것을 아는 팩토리에 대한 핸들을 가지고 있고, AttributeView는 AttributeControllers를 생성하는 방법을 알고있을 것입니다.

당신이하려는 일에 조금 의존합니다. 마찬가지로 Person에 대한 변경을 실제로 커밋하지 않고 AttributeModel에 대한 변경을 커밋하거나 롤백 할 수 있어야합니까? 사람에게 변경 사항을 롤백해야합니까? 사용자가 목록에서 다른 사람을 선택하면 변경 사항을 커밋하기 전에 유효성 검사를 수행하거나 Person을 전환하기 전에 변경 사항을 저장하라는 메시지를 표시해야합니까? 그런 것들이 엉망이 될 것 같은 곳입니다.

+0

두 번째 부분은 내 혼란이있는 곳입니다. Person 객체 전체에 대한 유효성 검사. 지금까지 내가 선택한 접근법은 잘 작동하는 것 같지만 일이 어떻게 끝나는지 알 수 있습니다. 응답 주셔서 감사합니다! – genki

+0

청취자 기반 유효성 검사 아키텍처가 이러한 상황에서 잘 작동한다는 것을 알았습니다. 따라서 특성이 유효성을 검사하고 속성 유효성의 변경 내용을 듣고 추가 유효성 검사 (예 : 특성 조합)를 수행하고 목록 컨트롤러는 사람의 변경 내용을 청취합니다. (모델이나 뷰에서 유효성 검사가 수행되는지 여부는 모델에 잘못된 변경 사항을 적용할지 여부에 달려 있습니다. 제대로 작동하지만 원래 모델이 아닌 모델 사본으로 작업하고 싶습니다.) –

+0

맞아. 확실히 사본을 가지고 작업하고 있는데, 기본적으로 객체 ('config')를 저장하고 GUI에서 사용하는 실제 모델 객체를 가지고 있으므로 모델에 대한 변경 사항은 모델에 기록 될 때까지 실제로 '저장'되지 않습니다. config. – genki