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の一部になる。
以上!!!!!!!