2004-03-24 [長年日記]

[覚書]「MVCモデル2」という表現は誤り

ちょっと身の回りでよく聞くようになった表現なので、確認の意味で調べてみました。

MVCモデルに、モデル1, モデル2といった表現はありません。モデル1、モデル2という表現をするのは、「JSP〜」です。つまり、

JSP Model 1 : リクエストURIは *.jspで、リクエストを受け取ったJSPがビジネスロジックを実行してそれを表示するモデル。

JSP Model 1.5 : リクエストURIは *.jspで、JSPはuseBeanタグ経由でビジネスロジックを呼び出し、結果を受け取ってそれを表示するモデル。

JSP Model 2 : リクエストURIは *.jsp ではない。Strutsなら *.doのようなURIであり、フロントコンポーネントがリクエストを受け取ってビジネスロジックを呼び出して、別のビューコンポーネントに結果表示を委譲するモデル。

一言でいえば、Web層に MVCモデルを適用したものが、JSP Model 2 である、ということですね。

See Also: JavaWorld 1999/12

「MVC モデル2」とは

↑といった舌の根も乾かないうちから、muimyさんの日記のコメントをハッケン。「〜ありません」というのは言い過ぎかも。そして混乱。だれかの誤解が広まってしまっているヨカンも。

「GUIで使用されているMVCに対して、Web層を対象としているMVCをMVCモデル2と呼ぶ」「具体的には、MVCモデル2では、モデルの更新がビューに通知されないため、ビューは積極的にモデルを参照する必要がある」というハナシが一部でありますけど、根拠資料がない。ううむ。

結論

「MVC モデル2」という表現には根拠資料が見つからず、話し手と受け手で合意形成できる保証がない。したがって用いるべきではない。

もちろん、根拠資料があれば話は別です。オレが見つけられないだけかもしれない。

根拠資料発見?

こちらへつづく……

本日のツッコミ(全6件) [ツッコミを入れる]
TKY (2004-03-24 15:27)

muimyさんが、さらに3日後に整理されていますね。

ただただし (2004-03-24 20:56)

MVCパターンは別にGUIのためにあるわけじゃないと思いますが……

matobaa (2004-03-25 01:02)

MVCパターンがGUIのためにあるように読めました? そんな意図はないのですが。うーむ誤解を招いたらしい。

TKY (2004-03-25 01:53)

http://www.brainopolis.com/jsp/mvc/KDuffey_MVC.html
によれば、JSP Model 1はJSPで何でもやっちゃう、JSP Model 1.5がJavaBeansを呼び出すモデルでしょうか。

matobaa (2004-03-25 02:20)

モデル1を修正して、モデル1.5を追加しました。ツッコミThanks!

ただただし (2004-03-25 09:14)

うーん、そうか。誤読ですね。すみません

[]