1

同僚の1人が、JavaScriptでコードを確認し、コントローラーでビューを使用しないように指示しました。代わりに、メディエーターを使用する必要があります。私は完全に迷子になっています。彼は来週まで利用できないので、ここにいます。

私のアプリケーションでは、以下のようにコントローラー(擬似コード)でビューを初期化します。

var controller = (function(){

   return {
      init: function()
      {
          this.view = new View("template");
          this.view.render();
      }
   }

})();

ビューをコントローラーから分離し、メディエーターを使用してそれらを操作する方法がわかりません。

誰かが私にアイデアやサンプルコードやコンセプトを教えてもらえますか?

4

1 に答える 1

2

まず、MVC パターンにおける Ms、Vs、および Cs の役割について少し説明します。

3 つの部分:

Model-View-Controller:

アプリケーション/ドメインの不変の本質をモデル (単数形で) と呼びます。オブジェクト指向の用語では、これは、根本的な問題をモデル化してサポートするクラスのセットで構成されます。したがって、問題自体と同じくらい安定して長く存続する傾向があります。
モデル (クラス) は、外界との接続についてどの程度知っている必要がありますか? 何もない、絶対に何もない。

モデルView- -コントローラー:

特定の状況では、特定のバージョンにモデルとの 1 つ以上のインターフェイスがあり、これをビュー (複数形) と呼びます。オブジェクト指向の用語で言えば、これらは「ウィンドウ」(多くの場合、実際のウィンドウ) を提供する一連のクラスで構成されます。

モデル-ビューController- :

コントローラーは、ビューを操作できるオブジェクトです。少し単純化しすぎて、コントローラーが入力を処理し、ビューが出力を処理します。コントローラーは、プラットフォームとオペレーティング システムに関する知識が最も豊富です。ビューは、そのイベントが Microsoft Windows、X Windows などから発生するかどうかとはまったく無関係です。


あなたの同僚があなたに伝えようとしているのはこれです:

下の図は、PHP の MVC フレームワークである Zend フレームワークに関するシーケンス フロー (概算) です。

大きな画像はこちらをクリックしてください。
Zend フレームワークの呼び出し


上の図の Dispatcher (最後から 3 番目) に注目してください。
あなたのケースでは、次のことだけを考えてみましょう。

  • Front.php : あなたの見解として。
  • Dispatcher : 同僚が言及したメディエーター。
  • MyController : コントローラーとして。

あなたがし
なければならないことはこれです:ビューがイベントをトリガーする必要がある場合、それ自体ではイベントを処理しません。イベントのパラメーター (存在する場合) と共にイベントをDispatcherにディスパッチします。Dispatcher

はこれから

  • このようなイベントを処理できるコントローラーを探してください。
  • コントローラーを作成する
  • パラメーター (存在する場合) と共にイベントをコントローラーに渡します。

コントローラーは次のようになります。

  • イベントの準備をします。
  • イベントを実行します。
  • 結果セット (存在する場合) をDispatcherに返します。

Dispatcherは次のようになります。

  • 結果セット (存在する場合) をViewに戻します。

ビューは次のようになります。

  • 結果セット (存在する場合) をレンダリングして提示します。

なぜそんなに多くのことをする必要があるのですか?
To keep the roles segregated and clear.

于 2012-01-11T23:17:23.707 に答える