MVCオルタナティブ
by borealkiss
今日William Sanders – ActionScript 3.0 Design Patternsを読み直してて気づいた。ずっとViewは見た目オンリーで仕事は何もせずにControllerにまかせっきりだと思ってたけど、自分の衣装は自分で着るらしい。
一般的なMVC
いわゆる本に載ってるやつで意外にViewが働く。triadと呼ぶにふさわしく仕事がバランスよく分担されている。
- ユーザーがViewとインタラクション
- ViewがControllerにユーザーインタラクションを通達
- Controllerがインタラクション内容にそってModelを更新
- Modelが自身の変更をViewに通達
- Viewが更新されたModelを使ってView自身を更新
MVCオルタナティブ
僕がMVCだとおもってたやつでViewはほとんど仕事をしない。自分としてはModelとViewに全く関連性がないのはなかなか良さそうに思うんだけどどうなんだろう。Controllerが仕事しすぎ?
- ユーザーがViewとインタラクション
- ViewがControllerにユーザーインタラクションを通達
- Controllerがインタラクション内容にそってModelを更新
- Modelが自身の変更をControllerに通達
- Controllerが更新されたModelを使ってViewを更新


[...] CocoaのMVCの構造はいわゆるデザインパターンのMVCと構造が異なる(ModelとViewに依存関係がない)。MVCパターンは、「MとVとCの依存関係をできるだけ対等になくしてやる」という思想の上に成り立っていると考えると、Cocoa型MVC(Controller司令塔型)は異端児と言える。といっても僕も少し前までCocoa型MVCをMVCパターンだと思っていたが(MVCオルタナティブ – boreal-kiss.com)。 [...]