ADR(Action-Domain-Responder)パターン

Last Update: 2019.12.09 02:52:29

MVC を ウェブアプリケーション開発に適用した MVC2、MVC2で問題となるファットコントローラー、ファットモデル、ModelってDB操作?的なものを解決するためのパターン。 MVC2をより洗礼させたものなので理解はしやすい。

Action

MVC2のControllerに相当する。 1つのリソースに対して1つのアクションが対応する。 1つのアクションは1つのクラスとして実装する。

コントローラーが複数のリソースへの要求に対応するのに対して1つのリソースに対して1アクション。 クラスの数は増えるがファットコントローラー化を防ぐことができる。

コントローラー分割についてはRuby On Rails 開発者のDHHの考え方はとても参考になる。

Domain

MVC2のModelと同義。

MVC2のModelといえば、データベースのTable操作のクラスを想像してしまうが 本来のModelはビジネスロジックを表していて特定のテーブルクラスを指すものではない。

なので、MVC2のModelとDomainは同義。

Responder

MVC2のViewに相当するものだが範囲がViewより広い。 ViewではHTTPレスポンスボディのみを扱い、ステータスコード、HTTPレスポンスヘッダの生成は コントローラーの役割だがResponderではステータスコード、HTTPレスポンスヘッダ、HTTPレスポンスボディを含めて扱う。

エリック・エヴァンスのドメイン駆動設計

作者: エリック・エヴァンス/今関剛 | 価格: 5,720円