MVC、自分用メモ

▼Reenskaug (XEROX PARC) 「MVC」/ Things - Model - View - Editor

変化しにくいインフォメーションと変化しがちなプレゼンテーションとの分離。メンタルモデルの記述としてのMVCは失敗(続きは DCI, Data - Context - Interaction で)。Smalltalk-76, 1978。


▼Reenskaug (XEROX PARC) 「MVC」/ Model - View - Controller(Editor)

Controller を追加。Editor は特殊な Controller として位置付け。Smalltalk-80, 1979-。


VisualWorks (ParcPlace Systems) 「Application Model」/ Model - ApplicationModel - View・Controller

Model から View - Controller 寄りのロジックを分離して独立させた ApplicationModel を追加。VisualWorks Smalltalk, 1992。


▼Gamma, et al. 「MVC」/ Model - View - Controller

Smalltalk での実装を分解して、デザインパターンの組み合わせ例(Observer、Strategy、Composite、Factory Method、Decorator)として解釈・紹介。C++, 1994。


▼Potel (IBM Taligent) 「MVP」/ Model - Presenter - View (View + Controller)

モダンな GUI コンポーネントにおいて冗長な Controller の役割を View に吸収させ、View と Model の仲介者として Presenter を追加 Controller をアプリケーションレベルに引き上げ、View と Model との仲介者として位置づけ直し Presenter と改名。C++/Java, 1996。


▼Dolpin Smalltalk (Object Arts) 「MVP」/ Model - Presenter - View (View + Controller)

Potel MVP Smalltalk 実装。 をヒントに、VisualWorks の Application Model における ApplicationModel の役割を UI 寄りの実装の Presenter に担わせ、モダンな GUI コンポーネントにおいて冗長な Controller の役割を View に吸収させて改めて View とすることで、Model - Presenter - View という三連構造を新たに提唱。頑張る Controller を Presenter に昇格させただけの Potel の MVP とはぶっちゃけ別物。Dolphin Smalltalk, 1996。


Java (Sun) 「MVC2」/ JavaBeans - Servlet - JavaServer Pages

Java(Webアプリ), 1999。


▼Fowler 「Presentation Model」/ Model - PresentationModel - View

VisualWorks の Application Model のこと? 2004。


▼Gossman (Microsoft) 「MVVM」/ Model - ViewModel - View

Fowler Presentation Model を WPF 向けに特殊化した実装。C#, 2005。



CocoaMVCは、たんなる「コントローラーが頑張るMVC」程度のものだと思っていたのだけれども、実は独自の工夫があるのか、普通にApplication Modelとかの流れなのかについて整理がついていないのでこれから勉強する。



参考文献: