2011-01-19 12 views
12

MVCパターンのコントローラーとMVCパターンのプレゼンターの違いは何ですか?両方のメリットと使用シナリオを理解するためのリンクを提供できますか?MVCパターンのコントローラーとMVPパターンのプレゼンターの違いは何ですか?

+1

「MVPとMVCとは何ですか?違いは何ですか?」(http://stackoverflow.com/questions/2056/what-are-mvp-and-mvc-and-what-is-the-difference ) –

答えて

10

MVPではプレゼンターはMVCのアプリケーションコントローラーによって実行される「中間者」の機能を前提としています。さらに、ビューは、以前はコントローラのジョブとして使用されていたUIイベント(mouseDown、keyDownなど)を処理する役割を担います。最終的に、モデルは厳密にドメインモデルになります。

セイズWikipediaです。

ここにはmore detailed explanation on the differences between the twoがあります。

Martin FowlerのRetirement note for Model View Presenterも参照してください。

6

MVCでは、ビューはモデルによってのみ更新されます(イベントをリッスンすることによって)。コントローラーによって更新されることはありません。これは、ビューのモデルデータをフォーマットする必要がある場合、MVPが必要な場合に問題になります。

MVPパッシブビューでは、プレゼンター(プレゼンターセットのビュープロパティ)によってのみビューが更新されます。発表者は、ビューを更新する前に、モデル上のイベント([必要に応じてデータを変更する])を待ち受けます。

MVP監視コントローラでは、ビューはモデルまたはプレゼンタによって更新されます。フォーマットが必要ない場合、ビューはモデルを介して更新されます。書式設定が必要な場合は、プレゼンターを介して自動的に更新されます。

関連する問題