2013/10/12

MVCモデルとMVPモデルについて

プログラミングにおけるMVCモデルMVPモデルについて復習します。

MVCはModel-View-Controllerの頭文字を取ったもの。MVPはModel-View-Presenterの頭文字を取ったものです。
MVPはMVCの派生なので、基本的には2つとも同じものです。違いは、MVCは机上の理想的概念であるのに対して、MVPは現実的な方法論です。

両コンセプトともモデルとビューはお互いに依存しないというのが前提です。依存しないとは、直接操作しないと同じことです。つまり、ビューはデータを操作してはいけないし、モデルはGUIを操作してはいけません

■MVCモデルのそれぞれの役割
・モデル(Model):データのこと(データ処理も含む)
・ビュー(View):GUIのこと(実際にユーザが見える画面のもの)
・コントローラー(Controller):データとGUIを繋ぐもの

MVCモデルの概念で一見問題なさそうなのですが、ビューの見た目をデータの違いで変化させたい時(例えば残高が0になったら、残高のラベルの背景を赤くするなど)その情報はビューが持つべき?その操作はモデルが行うべき?という現実問題が起こります。これを解決するのが、MVPモデルです。

■MVPモデルのそれぞれの役割
・モデル(Model):データのこと(データ処理も含む)
・ビュー(View):GUIのこと(実際にユーザが見える画面のもの)
・プレゼンター(Presenter):データとGUIを繋ぐもの+GUIのデータを保持&操作

上記のように、プレゼンターはコントローラーの機能に加えてGUIのデータを保持と操作もするものということです。

http://en.wikipedia.org/wiki/Model–view–presenter
http://en.wikipedia.org/wiki/Model–view–controller
http://d.hatena.ne.jp/sona-zip/20110207/p1
http://d.hatena.ne.jp/sona-zip/20110817/p1
http://d.hatena.ne.jp/sona-zip/20110823/p1
http://matarillo.com/general/uipatterns.php
http://cartera.me/2009/04/15/understanding-object-oriented-programming-and-the-mvc-system/

0 件のコメント:

コメントを投稿