MVC
最終更新日13 Jul 2015 01:25
概要
MVCはコードを機能上の部分に分割するためのパラダイム。再利用可能にするために、これらの境界を明確に保つようにする。
Model | 本質部分 アプリケーションの存在理由を表すデータ、ロジックなどを含むカスタムオブジェクト | Observer,Adapter |
---|---|---|
View | モデルをどのように表示するか ビューはモデルについて何も知らなくていい | Strategy,Composite |
Contoroler | モデルをどのように操作するか。(ユーザ入力・UI) 各層の状態変化を仲介し、2つのデータを同期させる | Strategy,observer |
データはモデルとビューの間を流れる。
ViewとControlerの部分をプレゼンテーション層という。
Modelの部分をビジネスロジック層という。
各デザインパターンはどんな役割をするか?
Adapter | 既存のコントローラとビューで機能するようにモデルを適合させる |
Composite | ビューはグラフィック部品で構成されえいる |
基本的なやりとり
ユーザー→ビュー | ビューはユーザーとやりとりする窓口係です。 |
---|---|
ビュー→モデル | ビューはモデルに状態を要求します |
コントローラ→モデル | コントローラがモデルに状態を変更するように依頼します |
という一方通行である。
通知関係でやりとりする
ビュー→コントローラ | ビューはユーザから受け取ったアクションに基づいて、コントローラにアクションを命令する。コントローラは受け取ったアクションに基づいてどのようにモデルを操作するかを解明する |
---|---|
コントローラ→ビュー | 状況に応じて表示を更新するようにビューに依頼する。 |
モデル→ビュー | モデル時の状態が変わった時、モデルがViewに通知します |
もあり得る。
私のプログラムの場合、コントローラが変換行列を操作する。
変換行列は、ビューみたいなもんだよね???
デザインパターンはMVCを理解するための鍵。
Bibliography
compound