レイヤードアーキテクチャ
https://gyazo.com/2a202d8e3db1902edbf7974238c1c3f9
概要
UI → Application → Domain → Infrastructure という一方通行の依存関係
ユーザーインターフェース層
情報の表示、ユーザーのコマンド(入力)解釈する責務
アプリケーション層
やるべきことの調整
ビジネスルールや知識は含まない
実際の処理はドメイン層に委譲する
ドメイン層
ビジネスロジックや制限など
インフラストラクチャ層
上位レイヤを支えるための技術的機能を提供
3層アーキテクチャで問題だった、ビジネスロジック層の肥大化を分離して、各層の凝集度が上がっている メンテナンス性の向上
問題点
ドメイン層がインフラ層に依存している
ドメイン層がインフラ層の変更の影響を受ける
https://gyazo.com/b4868ff5dc5e4c3a415ef285d6b03193
参照