vieweditattachhistoryswikistopchangessearchhelp

MVC

モデル・ビュー・コントローラ。オブジェクト指向と同様に、発祥は Smalltalk であるものの、その後再定義されていたり、独自定義がはびこっているので、議論に際しては、“何の”MVC についてなのかをあらかじめ明確にしておく必要がある。


Smalltalk の MVC

http://www.jac-net.com/~tarzan/smalltalkers/mvc/mvc.html (使わないと損をする MVC)[Missing File (http://squab.no-ip.com:8000/swiki/uploads/wiki/tsukawanai%5Fto%5Fson%5Fwo%5Fsuru%5Fmvc.pdf)]
http://www.cue.im.dendai.ac.jp/~masuda/mvc/index.html (増田さんの MVC について より)
http://www.sra.co.jp/people/aoki/SmalltalkIdioms/chapter6/Chapter6.htm#Model (Smalltalk Idiom より)
http://www.ogis-ri.co.jp/otc/hiroba/technical/Squeak5/S5-3-1.html (Happy Squeaking!! より)
http://heim.ifi.uio.no/~trygver/themes/mvc/mvc-index.html (MVC の成り立ち)

Objective-C …というか 旧 NEXTSTEP の MVC

http://www.big.or.jp/~crane/cocoa/warikan3.html (Cocoa はやっぱり より。web.archive.org のキャッシュ
The Model-View-Controller (MVC) Paradigm (Apple の開発者向けノートより)
MVC デザインパターン (同上)

Java の MVC

http://www.sra.co.jp/people/nisinaka/Jun4Java/MVC/(「じゅん for Java」での MVC。i.e. Java での Smalltalk の MVC の実装)
http://www.mamezou.com/tec/Tips/umlForumJp2001/umlArchi.html(J2EE の MVC)

JavaServlet の MVC

http://www.ingrid.org/jajakarta/struts/struts1.0...  (Strusts マニュアルより)
http://www.atmarkit.co.jp/fjava/javafaq/j2ee/j2e07.html (Java Solution FAQ より)
http://java-house.jp/ml/archive/j-h-b/047577.html (よくある誤解)
http://java-house.jp/ml/archive/j-h-b/047613.html (Servlet プログラミングにおける MVC )



Squeak の MVC フレームワークには、ウィジェットセットはあるんでしょうか?
TicTacToeを書いたときに、適当なクラスが見つからなくて描画は自前で線分や円を描いてやってました。--SHIMADA


いえ。私の「ウィジェットセット」に対する理解が正確なら“ない”ですね。Morphic すらかなり貧弱な印象を受けます。クローズボックスのバッテンとかいまだにキャラクタだし(^_^;)。--sumim

あ、やっぱり。この調子でごりごり書いていくのはまるで Xlib のようでつらいなーと思っていましたが。--SHIMADA

'80 年代そのままの MVC プロジェクトはともかく、3.0 のときに Morphic が起動時プロジェクト(フレームワーク)に設定されているのを見て、こんなんでいいのか?と思ったものの、そのまま忘れてしまっていましたが、こういう話をすると、改めてやっぱまだ発展途上だなぁ…と思い直しますね。--sumim

MVC の話からはずれますが、Morphic もちょっと問題があって、インスタンス(モーフ)だけでインターフェイスビルダよろしく GUI が構築できてしまうんですよね。ちょうどドロー系ツールで絵を描くと、それが機能を持ったアプリもどきになるという恐ろしい現象が。それぞれのウィジェットもどきにサブクラスを作って、それっぽくコーディングすると(もしくは Squeak eToys すると)動いちゃうからラクで楽しいんですけど、これをソースとして配布しようとすると、とんでもない作業がまっているという罠があります。前の話(インスタンスで構築した物をコードに起こしてくれるものが必要)と重なりますが、なんかしらのアクションは必要かもしれませんね。--sumim

> インスタンスで構築した物をコードに起こしてくれるものが
それって必要なんでしょうか?
もし「なんでもコードに落とさないと運搬できない」のだとすると、ちょっと悲しいかも。 -戯

オブジェクトの永続化とその方法





Widgetですか。妙に個々の完成度が高くて人の創造力を喚起(笑)しないなあ、とか、
その割には定番Widgetの中には「なんでこんなのも無いんだ?」と理解に苦しむ(笑)ものが多い、とか、
あんまり良い印象は無いです俺。勿論手早くアプリを作るためには嬉しいのですが… -戯

#点や線だって普遍性のあるVCだと思うんですが、実装してる奴は珍しいっぽい。

これに関しては Morphic はもう一踏ん張りしておのおのの morph(点や線(笑))が VC としての自覚(フレームワークのさらなる整備)を満たせばいい線いけると思います。まあ、Smalltalk 環境に実装済みの MVC フレームワークを利用すればいいので、現状でも十分と言えば十分だし、Morphic としてあらためて各 morph に VC の素養を持たせる拡張をすべきかどうかの議論は(すでにスパゲッティ化が指摘されている状況を鑑み)慎重にしなくてはいけませんが。--sumim

NewtonScriptをGoogleJしてこんなとこに至ったんですが、
ここで気になるのが、NewtonScriptで御馴染みのプロトという単語。

実はMをプロトと見なした子オブジェクトとしてVを実装したら良いんじゃないか?と時折思うんです。
で、上記頁は、それに近いことを言って(やって)いるように思うんですが、どうでしょう?

プロト(ないしはただの委譲でもいいかも知れないが)の連鎖の、たまたま終端になってる奴が、
たまたまUIオブジェクトになっていたら、それがVC(みたいなもん)である、っていう発想はどうでしょうかね? -戯

>たまたま終端になってる奴が、たまたまUIオブジェクトに
すいません(^_^;)。おっしゃりたいことのイメージ、ちょっと掴みかねているみたいです。よさそうな感じはするんですけどね…。その終端の奴が UI オブジェクトになるための属性はどこから継承(どこへ委譲)したらいいのですか? 別のプロトということなら Self が Morphic フレームワークでやっているのがまさにそれかな、と。--sumim




Smalltalkソフトウェア開発 第5回 Smalltalkウィンドウプログラミング(1)
この「ビュービルダ」ような「インタフェース構築ツール」は、Smalltalkをもってすれば朝飯前であり、量的にも300ステップぐらいである。このようなプログラムは、「プロダクト」にするのもおこがましく、「グッディーズ」と呼ばれる「遊びのプログラム」の範疇に入る。

なぜこんなに簡単にできてしまうのだろう。貧弱と思っていたのは勘違い? --SHIMADA

「簡単にできてしまう」のを不思議に思われるのは、ビューのビルドのほうですか? ビルダ自体が…でしょうか。--sumim

練習を兼ねて、試しに Squeak でデフォルメしたものを作ってみました。--sumim

僕が「ウィジェットセットはありますか?」と書いたのは、SelectionInListView(≒ListBox)やLabeledBooleanView(≒Button)のことだったのです。今見るとSqueakでもPluggableListViewとかPluggableButtonViewとか見つかりました。:D
Browserの周辺を良く読むとかすればよかったんでしょうけど、当時は無理でしたね。--SHIMADA

なるほど、そういうご主旨でしたか。このページの冒頭では結局、誤った情報を提供してしまっていたのですね。ごめんなさい。私は“セット”の語感から、「ウィジェットセット」をウィジェットを組み合せて運用するのに便利な小規模フレームワークやメタウィジェット、あるいは、ただモデルを接続すればよい出来合いのウインドウの様なものにまで勝手に想定を膨らませてしまっていました。「各種(基本)ウィジェット」という意味だったのですね。--sumim


このページを編集 (6915 bytes)


Congratulations! 以下の 13 ページから参照されています。

This page has been visited 16451 times.