2013-03-23 19 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はモデルに委任してビューに応答します。 MVAでは、メッセージが入力されると、アダプタが選択され、モデルとビューの間で調整が行われます。 MVP ViewはPresenterをトリガー/作成/呼び出しするため、複数のPresenterの中から選択する(アダプターが選択されるため)のは簡単ではありません。

+1

別の言い方をすれば、MVPでは、ビューはプレゼンターを認識し、イベントを観察してプレゼンターに委譲するアクティブなパーティーです。 MVAでは、ビューはアダプターを認識しませんが、アダプターはビュー・イベントを監視するアクティブなパーティーです。 – hidro

関連する問題