Table of Contents
達成する事
関心の分離
関心の分離により良い事
フレームワーク非依存
アーキテクチャは、機能満載のソフトウェアのライブラリに依存していない。これにより、システムをフレームワークの制約で縛るのではなく、フレームワークをツールとして使用できる。
テスト可能
ビジネスルールは、UI、データベース、ウェブサーバー、その他の外部要素がなくてもテストできる。
UI非依存
UIは、システムのほかの部分を変更することなく、簡単に変更できる。たとえば、ビジネ
スルールを変更することなく、ウェブUIをコンソールUIに置き換えることができる。
データベース非依存
OracleやSQL ServerをMongo、BigTable、CouchDBなどに置き換えることができる。ビジネスルールはデータベースに束縛されていない。
外部エージェント非依存
ビジネスルールは、外界のインターフェイスについて何も知らない。
概要
依存関係は内側一方向のみで、外側のルールを、内側に持ち込んではいけない
各レイヤーごとに解説
エンタープライズビジネスルール(Entities)
- 企業全体の最重要ビジネスルールをカプセル化したもの
アプリケーションビジネスルール(Use Cases)
- アプリケーション固有のビジネスルールを記述する
- エンタープライズビジネスルールをいつ・どのように呼び出すかを規定したルール が含まれている
インターフェースアダプター(Controllers/Presenters/Gateways)
- 外部からの情報を内側で使用できる形式にデータを変換するアダプター
フレームワークとドライバー(UI/Web/Devices/DB/External Interfaces)
- フレームワークやツールで構成されている(DB, Webフレームワーク等)