MVC

mvc.png

概要

MVCはコードを機能上の部分に分割するためのパラダイム。
再利用可能にするために、これらの境界を明確に保つようにする。
Model 本質部分 アプリケーションの存在理由を表すデータ、ロジックなどを含むカスタムオブジェクト Observer,Adapter
View モデルをどのように表示するか ビューはモデルについて何も知らなくていい Strategy,Composite
Contoroler モデルをどのように操作するか。(ユーザ入力・UI) 各層の状態変化を仲介し、2つのデータを同期させる Strategy,observer

データはモデルとビューの間を流れる。
ViewとControlerの部分をプレゼンテーション層という。
Modelの部分をビジネスロジック層という。

各デザインパターンはどんな役割をするか?

Adapter 既存のコントローラとビューで機能するようにモデルを適合させる
Composite ビューはグラフィック部品で構成されえいる

基本的なやりとり

ユーザー→ビュー ビューはユーザーとやりとりする窓口係です。
ビュー→モデル ビューはモデルに状態を要求します
コントローラ→モデル コントローラがモデルに状態を変更するように依頼します

という一方通行である。

通知関係でやりとりする

ビュー→コントローラ ビューはユーザから受け取ったアクションに基づいて、コントローラにアクションを命令する。コントローラは受け取ったアクションに基づいてどのようにモデルを操作するかを解明する
コントローラ→ビュー 状況に応じて表示を更新するようにビューに依頼する。
モデル→ビュー モデル時の状態が変わった時、モデルがViewに通知します

もあり得る。
私のプログラムの場合、コントローラが変換行列を操作する。
変換行列は、ビューみたいなもんだよね???

デザインパターンはMVCを理解するための鍵。


compound

サポートサイト Wikidot.com compound