2013-03-23 9 views
14

Model-View-Presenter와 Model-View-Adapter 패턴간에 차이점이 있는지, 만약 그렇다면 차이점을 이해하려고합니다. 나는 그들을 비교/대조하는 온라인 자원을 찾지 못했고, 그래서 그들이 실제로 별개인지 여부조차 확신하지 못한다.Model-View-Presenter와 Model-View-Adapter의 차이점은 무엇입니까?

내가 발견 한 설명은 본질적으로 내게 동일합니다. 내가 수집 한 바로는, 두 경우 모두에서 제어 흐름은 기본적으로 :

View <-- Adapter/Presenter --> Model 
(where Adapter/Presenter can also respond to events from View and Model) 

View: the UI 
Adapter/Presenter: main logic; mediator between the UI and the data model 
Model: the data model 

어댑터 대/발표자는보기 및 모델 "에 대해 알고"하지만보기 및 모델은 다른 사람에 대해 알고하지 않습니다 그들보다.

나는 여기에 완전히 빠져있는 미묘함이있을 것으로 기대한다. 이게 뭐야?

답변

10

내가 생각할 수있는 유일한 점은 일반적으로 MVA는보기와 모델간에 여러 어댑터가있는 것과 관련이 있다는 것입니다. MVP에서 그렇게하는 것을 방해하는 것은 없지만 MVP는 강력한 트라이어드를 의미한다고 생각합니다.

업데이트 (수십 년 후) : 되돌아 보면, 중요한 차이점은 제어 흐름이라고 생각합니다. MVP에서 View는 Presenter를 트리거/생성/호출합니다. Presenter는 모델에 위임 한 다음 View에 응답합니다. MVA에서 메시지가 들어 오면 어댑터가 선택되고 모델과 뷰가 중재됩니다. MVP View가 Presenter를 트리거/생성/호출하기 때문에 여러 Presenter 사이에서 선택하는 것 (Adapter가 선택됨)은 간단하지 않습니다.

+1

다른 말로하면 MVP에서보기는 발표자를 인식하고 이벤트를 관찰하고 발표자에게 위임 한 활성 파티입니다. MVA에서 뷰는 어댑터를 인식하지 못하지만 다른 방향에서는 어댑터가 뷰 이벤트를 관찰하는 활성 파티입니다. – hidro

관련 문제