以前は、多くの開発者は、ほとんどのフレームワークが行うように、ビューはモデルと直接通信するべきではないという意見を持っていました。
そして、この意見は間違っているようです。いくつかの記事を見つけました。これらの記事では、ビューはモデルと直接通信できると書かれています。
http://r.je/views-are-not-templates.html
http://www.tonymarston.net/php-mysql/model-view-controller.html
モデル、ビュー、コントローラーの混乱
と
モデルのあり方MVCで構造化?
これらの記事のほとんどは、ウィキペディアのModel–view–controllerからのブロックを引用しています。引用は次のとおりです。
ビューは、適切なユーザー インターフェイスを生成するためにモデルにクエリを実行します (たとえば、ビューはショッピング カートの内容を一覧表示します)。ビューはモデルから独自のデータを取得します。一部の実装では、コントローラーはビューに一般的な命令を発行して、それ自体をレンダリングする場合があります。また、画面の更新が必要な状態の変化 (オブザーバー) のモデルによって、ビューが自動的に通知される場合もあります。
ああ、それはウィキペディアからのもので、そのような権威のあるサイトです。それは正しいに違いありません!
しかし今、MVC http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controllerの wiki リンクを開くと、ページは今年の 9 月 14 日に編集されています ( 2013)、上記の文はなくなりました。
ビューの新しい定義は次のとおりです。
ビューは、コントローラーを介してモデルから、ユーザーへの出力表現を生成するために必要な情報を要求します。
今、私は再び混乱しています。新しい定義では、ビューはコントローラーを介してモデルからデータを要求する必要があります...
ビューは地球上でモデルに直接アクセスする必要がありますか?