SmalltalkのMVC - ViewとModelの理想的な関係の考察

[id:soutaro:20050903]

      • -

http://www.jac-net.com/~tarzan/smalltalkers/mvc/mvc.html
このURLは、最近見つけたのです。Smalltalkは詳しくないので、ソースコードまで確認していないですが、

モデルは、画面に表示したいオブジェクトそのものです。ところが、自分は「いつ、どこに、どの位の大きさで、どのように表示されるのか」という情報は持っていません。つまり、データ管理だけを専門に行うのがモデルの仕事です。
ビューは、モデルを「いつ、どこに、どの位の大きさで、どのように表示されるのか」を知っています。つまり、表示(出力)まわりを一手に引き受けるオブジェクトです。
コントローラは、モデルやビューを操作するためのユーザからの要求を受け付けます。そして、モデルやビューにメッセージを送り、全体の動きを制御します。指示(入力)まわりを行うオブジェクトと考えることができます。

というなかで、一番よいとしているのが

プラガブルを利用するMVC
今のところ、Smalltalkシステムの中で一番美しいMVCです。ビューとコントローラのペア(VC)は、モデルに関係ない形態になっています。どんなモデルでも、このVCに差し込んで、MVCにするだけで動くようになっています。この差し込んで使うということで「pluggable(プラガブル)」の名前があります。電源プラグ(VC)に、コンセント(M)を差し込むように使えるからです。
ProgramNo.3を参照して下さい。モデルがポップアップメニューをActionMenuのインスタンスとして保持しています。これで回転の機能を加える際もモデルだけを直せばよいようになりました。プログラムのメンテナンス性が向上しています。

となっています。つまり、ViewとControllerは修正せず、Modelを修正することが、ここでは一般的なようです。
ところで、普通は、コンセントにプラグを差し込みますね。
参考)http://www.hyuki.com/yukiwiki/wiki.cgi?MVC