言語ゲーム

とあるエンジニアが嘘ばかり書く日記

Twitter: @propella

GUI Architectures

http://www.martinfowler.com/eaaDev/uiArchs.html

ダン・ガメランさんに教えてもらったマーチン・ファウラーによる GUI アーキテクチャの紹介。まだ日本語訳は無いみたいです。

  • GUI ライブラリには大きく分けて Forms and Controls 系と MVC 系がある
  • MVC 系ではモデルと表示を明確に分ける。モデルは表示に関わらない

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 は何もしないようにしましょうという話。