Laravel ADR 調べてみた

ADRとは

アプリケーション設計パターンの1つ。

Action, Domain, Responderの3つにアプリケーションの機能の役割を分割することで、保守性の高いわかりやすい設計にすることを目的としている。

 

LaravelにおけるADR

Laravelは初期設計ではMVCモデルが適応されているが、ADRモデルでも設計がしやすい作りになっている。

開発者によって、設計パターンを選択できるのがLaravelの特徴。

Action

ルーターからディスパッチされた処理を実行し、適切なDomainやResponserに処理を譲渡するもの。

MVCモデルでいうControllerの役割を担っている。

Actionは1つのアクションに対して1つのルータが割り当てられるという決まりがある。

つまり、1つのアクションクラスは1つの実装しか持たないということ。

これにより、クラス内での依存関係を最小限に抑えることができ、複雑なクラスを少なくすることができる。

Domain

データベースとの連携やビジネスロジックを実装するもの。

MVC モデルのModelとほぼ変わらない。

Responder

レスポンス全体を作成、処理するもの。

MVC モデルのViewとは違い、httpステータスの変更やクッキーの操作などもResponderで行う。

つまり、MVCモデルと関連付けていうと、ViewはResponderの一部になる。

 

以上!!!!!!!