hIDDEN bLOG » MVCを誤解していたやもしれない

2008/9/19 金曜日

MVCを誤解していたやもしれない

このエントリをはてなブックマークに追加
Filed under: IT系 — @ 11:56:45

今まで当たり前のように学び使ってきたつもりだったMVCだけど、どうもその本質的な定義について誤解をしていたらしいということが分かってしまった。

これまでは、「MVCとは 【Model-View-Controller】 – 意味・解説 : IT用語辞典」に解説されるような内容でMVCを理解していた。図にすると下のように表現できると思う。
mvc_01.jpg

ところが...

別件の記事を書こうとしていて、そこでMVCについておさらいしてみようと思い検索したところ、「Model View Controller – Wikipedia」や「軽量なMVCフレームワークの自作(改訂版):CodeZine 」の記述をみてがく然。 

それによると本質的には、Controllerは処理やビジネスロジックを制御するというものではなく、ユーザからの入力を受け取る役割を受け持つという。ゲーム機のコートローラをメタファとすると、どうも正しそうな気がする。そうするとViewはテレビモニタというメタファが当てはまる。えぇい、ついでにModelはゲーム機本体だ。

.NETのWindowsアプリなど、モデルからのイベントドリブン的な構成だと以下のようになるだろうか。
mvc_11.jpg

つまるところ、たとえばWindowsFormsアプリだとするとForm.csがControllerでForm.Designer.csがView、WPFアプリだとするとForm.csがControllerでXAMLがViewだという解釈が妥当になるかもしれない。

ついでにStrutsのような構成だと、流れだけちょっと違って下のような感じかな。
mvc_12.jpg

いやはや、だからといって以前の理解をもとに構築していた今までのシステムがダメかというとそうでもないんだろうけども、これだけ長いこと読み違えをしていたのが実にくやしいのう、くやしいのう。

ボクってばWebのプロジェクトに触れる機会ってのがほとんどなかったんだけど、もしかしてStrutsやRailsといったものにもう少し馴染みがあったら、ちょっとは早くこれに気づけたんだろうか...それらのフレームワークをみると、Controllerの責務が本来のそれに当てはまっているのが理解できる。

が。
いまいちしっかり咀嚼しきれてないのと、ぐぐる先生に聞いてみても前者の記述のほうが多いくらいなので、もうちょっとじっくり整理してみたい。

コメントはまだありません »

コメントはまだありません。

この投稿へのコメントの RSS フィード。 TrackBack URL

コメントする

HTML convert time: 0.702 sec. Powered by WordPress