アクション・ドメイン・レスポンダー

アクション・ドメイン・レスポンダー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コントローラーがモデルと対話するのと同じようにドメインと対話しますが、アクションはその後ビューやテンプレートシステムと対話するのではなく、レスポンダーに制御を渡してそれらを処理し、レスポンダーがそれを処理し、レスポンダーがそれを処理し、レスポンダーがそれを処理し、レスポンダーがそれを処理するという点が異なります。

参考文献