ビューの仕事は、ビュー テクノロジーへのアダプターです。この場合、ビュー テクノロジは、JavaScript を介した HTML 上の jQuery である可能性があります。ビューは、次の 3 つのことを行うように設計する必要があります。
- イベントがいつ発生するかを把握し、これらのイベントをプレゼンターに伝えます (これはpostal.jsなどのメッセージング フレームワークを使用して間接的に行われる場合があります) 。
- 発表者に (尋ねられたら) 「xの値は何ですか」と伝えます。ここで、xはビューに表示される値です。
- ビューの値を変更するには、プレゼンターからのメッセージを (通常はダイレクト メソッド呼び出しを介して) 受け入れます。
パッシブ ビュー パターンのビューはステートフルではありません。繰り返しますが、ビューは状態を表していません。これが意味することは、すべての状態と状態遷移の知識がプレゼンターによって表されるということです。ビューは、プレゼンターと実際のビュー テクノロジーとの間の間接性を提供する単なる接着剤です。 上記の 3 つの箇条書きを超えて、そこに含まれる情報をどうするかについての知識を要約するものではありません。ビューが一貫した状態にあることを期待してはならないため、これは重要です。ビューの状態を管理する責任を常にプレゼンターに持たせる必要があります。

上記のスタックは、モデル、ビュー、およびプレゼンターの相互作用と、ビュー テクノロジおよびコントローラーとの関係をどのように予測するかを示しています。
- ブラウザー、HTML、および DOM (jQuery によって管理される) は、ビュー テクノロジです。これらは本質的に複雑であり、モデルを表すことができません。
- ビューは、ビュー テクノロジーからロジックを保護します。プレゼンター内のプレーンな古いコードに集中できるように、間接化を提供します。ビューは、プレゼンターに返信するために何らかのメッセージを使用する必要があります。これにより、ビューとプレゼンターの間の双方向の依存関係が防止されます。また、複数のプレゼンターがビューを操作することもできます。
- プレゼンターは、ビューの抽象的な性質を理解する責任があり、ビューへのインターフェイスに基づいてモデルの状態を管理する必要があります。コントローラーからモデルを取得する方法と、モデルをサーバーに保持する方法を理解できます。
- モデルは、特定の時点での状態を表したものです。また、コントローラーとプレゼンターの間の DTO としても機能します。JavaScript では、プレゼンターの動作をモデルに単純に追加するのが簡単で、場合によっては望ましいこともあります。
- コントローラーは、アプリケーション内のナビゲーションを調整し、プレゼンテーションからバックエンド サービスを抽象化する役割を果たします。