0

私はMVCをよく知っており(少なくとも私は知っていると思います)、このアプローチを使用してかなり多くのアプリケーションを開発しました。しかし、私を悩ませていることが1つあります。

私が見たモデルのすべての図では、コントローラーとビュー/モデルの間の直接接続だけでなく、ビューとモデルの間の接続もある三角形として描かれていました(つまり、モデルとビューは、コントローラーが中央になくても直接話します)。

開発者としての私の長年の間に、モデルとビューの間には常に完全な分離があり、コントローラーが仲介者として機能していました。私が理解しているように、これもベストプラクティスです。

では、どのような状況でモデルにビューと直接対話させたいですか?簡単な例を教えていただけますか?

4

2 に答える 2

1

「Supervising Controllers」を使用した一部の Model-View-Presenter デザイン パターンでは、単純なデータ バインディング タスクのために、View を Model から直接更新できます。

http://msdn.microsoft.com/en-us/library/ff647543.aspx

ModelView - ViewModel パターンもありますが、コントローラーのロジックがビューに移動しただけで、MVC と同じようなものです。一部の WPF アプリでは、MV-VM を使用してデータ ソースから UI を迅速に更新します。

http://russeleast.wordpress.com/2008/08/09/overview-of-the-modelview-viewmodel-mvvm-pattern-and-data-binding/

しかし、どちらの代替案 (Supervising C を使用した MVP と MV-VM) も、実際には内部の MVC のバリエーションにすぎません。

于 2012-07-12T09:52:10.243 に答える
1

モデルはビューと対話しません。ただし、ビューはモデルに含まれるデータを表示し、モデルからメソッドを呼び出してそれらを表示します。それがおそらく、図にそれらの間にリンクがある理由です。

  1. コントローラーはデータベースから (サービス層を介して) モデルを取得し、それをリクエストに格納します
  2. コントローラーは適切なビューにディスパッチします
  3. ビューはモデルからデータを取得し、HTML を生成します
于 2012-07-12T09:02:44.963 に答える