Dispathcer View パターン

このセクションでは、 「パターンテンプレート」 で定義されている形式の Dispathcer View デザインパターンについて説明します。

問題

Dispathcer View パターンは、Front Controller パターンと View Helper パターンの問題を解決します。Front Controller パターンと View Helper パターンは、ビューへのアクセスを直接扱ったり、ビジネスロジックとプレゼンテーションロジックが混在したりする場合に対応します。

Dispathcer View パターンは、次のコンポーネントを組み合わせたマクロパターンです。

Dispathcer View パターンを構成するコンポーネントは、Service to Worker パターンを反映します。ただし、これらのコンポーネントが担当するロールは互いに少しずつ異なり、フロー制御ロジックもさまざまです。

解決策

Dispathcer View パターンにおけるディスパッチャーコンポーネントのロールは、最低限のことしか行いません。通常は、コントローラからの入力に基づいたリクエストの転送を担当します。ヘルパークラスにアクセスしてビューを指定し、ビジネスサービスにリクエストを転送したり、ビジネスサービスを実行したりすることはありません。

Service to Worker パターンでは、ヘルパークラスへのアクセスはコントローラ、ディスパッチャー、および ビュー層で実行できます。また、ヘルパークラスへのアクセスは、ビューが Dispathcer View パターンで処理される場合にのみ実行できます。

このパターンは、基本的な Web アプリケーション、または複雑なビジネスサービスの必要条件 (セキュリティ管理) などを伴わない Web アプリケーションの一部分に適しています。

次の図にこの戦略を示します。

これは、クライアントリクエストがまずコントローラに送信されるイメージを示しています。コントローラはリクエストをディスパッチャーに渡します。ディスパッチャーはリクエストをビューに渡します。ビューだけがヘルパークラスにアクセスします。