アクション・ドメイン・レスポンダー (ADR )は、 Paul M. Jones [ 1 ] によって提案されたソフトウェアアーキテクチャパターンであり、 モデル・ビュー・コントローラ (MVC)をWebアプリケーションに適した形に改良したものです。ADRは、もともとデスクトップソフトウェアアプリケーション向けに設計されたMVCよりも、 HTTP 通信のリクエスト・レスポンスフローに近づけるように考案されました。MVCと同様に、このパターンは3つの部分に分かれています。
コンポーネント アクションはHTTP リクエスト ( URLとそのメソッド) を受け取り、その入力を使用して ドメイン と対話し、その後、ドメインの出力を 1 つのレスポンダー にのみ渡します。 ドメインは 状態を変更し、必要に応じてストレージとやり取りしたり、データを操作したりできます。ドメインにはビジネスロジックが含まれます。 レスポンダは、 アクション によって渡されるドメイン の出力から HTTP 応答全体を構築します。
MVCとの比較 ADR は MVC の名前変更と誤解されるべきではありませんが、いくつかの類似点は存在します。
MVCモデル はADRドメイン と非常によく似ています。違いは動作にあります。MVCではビューからモデル に 情報を送信したり、モデルを変更したりできますが、ADRではドメインは アクション からのみ情報を受け取り、レスポンダー からは情報を受け取りません。 Web中心のMVCでは、ビューは コントローラー がレスポンスのコンテンツを生成するためにのみ使用され、コントローラーは それを操作してから出力として送信します。ADRでは、アクションが ドメイン とのやり取りを終えると、実行制御はレスポンダー に移ります。したがって、レスポンダーは すべての出力生成の責任を負います。レスポンダーは 、必要に応じて任意のビューやテンプレートシステムを使用できます。 MVCコントローラー には通常、複数のメソッドが含まれており、これらを単一のクラスにまとめると、アクション前フックやアクション後フックなど、適切に処理するための追加ロジックが必要になります。ただし、各ADRアクションは個別のクラスまたはクロージャで表現されます。動作的には、アクションはMVC コントローラーが モデル と対話するのと同じようにドメイン と対話しますが、アクションは その後ビューやテンプレートシステムと対話するのではなく、レスポンダーに制御を渡してそれらを処理し、レスポンダーがそれを処理し、レスポンダーがそれを処理し、レスポンダーがそれを処理し、レスポンダー がそれを処理するという点が異なります。
参考文献
外部リンク