http://www.martinfowler.com/eaaDev/uiArchs.html
ダン・ガメランさんに教えてもらったマーチン・ファウラーによる GUI アーキテクチャの紹介。まだ日本語訳は無いみたいです。
Forms and Controls
- UI を表現するフォームが、データを画面に表示する。
- 単純な場合、データバインディングがフォームとデータを同期する。
- 複雑な場合、イベントでデータを変更する。
Model-View-Controller (MVC)
- Model はデータとその処理を担担当
- View は Model の表示を担当
- Controller は Model の更新を担当
- Model から View や Controller への通知に Observer pattern 使用
VisualWorks Application Model
- Model, Controller の役目と Observer pattern 使用は MVC と同じ
- View は状態を持たない
- Application Model が View の状態を担当
Model-View-Presenter (MVP)
- Model の役目と Observer pattern 使用は MVC と同じ
- View と Controller は一体化して View と呼ぶ
- View は Presenter 経由で Model を参照
- Presenter はユーザ入力(ゼスチャ)を解釈、Command Pattern を使い Model を更新
- Presenter は View の状態を管理
Humble View
テストケースの書きやすいように View は何もしないようにしましょうという話。