2010-01-03 3 views
0

다음과 같이 계층화 된 아키텍처가 있습니다.MVP의 모델 - 이벤트

프리젠 테이션
서비스
비즈니스
데이터

나는 나의 이해는 서비스 계층 내 이해가 정확한지의 'M'즉 모델을 나타내는 것입니다 프레젠테이션 MVP를 구현하는 경우? 그렇다면 MVP에 대한 나의 해석에서 모델은 내 발표자가 구독 할 이벤트를 제기 할 수 있습니다. 이것은 내 서비스 계층이 이벤트를 발생시키는 것을 의미합니까?

내가에 대한 답변을 얻을 싶습니다으로 언급하시기 바랍니다 질문에 문제가있는 경우이 질문은, 의견이나 답변을 여러 번 확인되었습니다하지만 유치하지 않은

업데이트 이. 감사.

답변

0

MVP 디자인의 View Presenter 부분 뒤에있는 기본 개념은보기가 가볍다는 것입니다. 사람들이 양식과 컨트롤에 넣는 논리의 대부분은 발표자에 있습니다. 발표자는 디자인의 거대한 중앙역입니다. 데이터 검색, 모델 업데이트 및 이벤트 제기를 통해 응용 프로그램의 다른 영역에서 변경된 사항을 알 수 있습니다. 이 모델은 주로 원하는 데이터의 저장 및 검색에 초점을 맞 춥니 다.

MVP 디자인을 사용할 때 핵심 질문은 양식 X를 벗겨 내고 양식 Y로 바꾸면 어떻게됩니까? 발표자에게 새로운 UI를 반영하도록 급진적 인 변화를 일으킨다면 깨끗한 MVP 디자인이 아닐 수도 있습니다.

+0

@RS Conley 응답 해 주셔서 감사합니다. 네가 내게 말한 것은 완전한 의미를 가진다. View Presenter가 모델을 업데이트 할 때 다루는 방법에 대해 신경을 쓰지 않는 것처럼 보입니다. 변경 내용이 다른 관심있는 View/Presenters에 어떻게 통지되는지 알려줍니다. 고객이 두 번 클릭하면 고객 세부 정보를 편집 할 수있는 고객 목록을 표시하는보기가있는 경우 고객 편집자의 발표자가 고객에게 업데이트 된 이벤트를 전달하고 다른 발표자가 반응 할 것이라고 말합니다. 이 행사에? Event Aggregator가 들어오는 곳입니까? – David

+0

디자인을 단일 모델로 생각하지 말고 여러 발표자보기가 매달려 있습니다. 발표자가 여러 명의 발표자와 어울리는 모델입니다. 내부적으로 발표자 레이아웃은 각보기를 지원하는 다른 클래스를 가질 수 있습니다. 발표자는 여러 개의 내부 레이어를 가질 수도 있습니다. 내 CAD-CAM에는 각보기를 지원하는 일련의 UIxxx 클래스가 있습니다. 그 아래에 일련의 라이브러리에는 명령 디자인 패턴을 사용하는 명령이 없습니다. 아래는 UI 전체를 관리하는 UIForm이라고 부르는 것입니다. –

+0

각 UIxxx 클래스는 자체를 UIForms로 등록합니다. 그런 다음 UIxxx 클래스는 다양한 명령을 사용하여 모델을 조작하고 그립니다. 질문에 가장 중요한 것은 다른보기가 업데이트되도록하는 명령을 트리거 할 수 있습니다. 업데이트 명령은 UIForm을 사용하여 업데이트를 처리합니다. UIForm과 UIxxx 클래스 사이의 관계는 Observer Design Pattern을 사용합니다. 그런 다음 각 UIxxx 클래스는 연결된 각보기를 업데이트합니다. 모든 현재 발표자가 자신을 등록하는 기본 레이어가 있습니다. 해당 계층을 사용하여 업데이트를 관리합니다. –