人柄は良いがビギナーレベル

育児とプログラミングに追われる毎日

Clean Architecture 第11章 DIP:依存関係逆転の原則

この記事について

覚え書き

ソースコードの依存関係が(具象ではなく)抽象だけを参照しているもの。それが、最も柔軟なシステムである。

このルールを絶対のものとして守り続けるのは明らかに現実的ではない。 ... 依存したくないのは、システム内の変化しやすい具象要素だ。

  1. 変化しやすい要素(ビジネスルールの詳細、実装の詳細)に依存しないように具象を参照せずに抽象を参照するようにする
  2. 抽象を参照することで具象を置換しやすくなり柔軟なシステムになる

抽象コンポーネントにはすべての上位レベルのビジネスルールが含まれる。具象コンポーネントには、これらのビジネスルールが操作する実装の詳細が含まれる。

  1. 下記を意識することで利用しやすい抽象、変更しやすい具象を作成していきたい
  2. 抽象にはビジネスルールを記載する
  3. 具象にはビジネスルールの操作(実装の詳細)を記載する

まとめ

  • 利用しやすい、安定した抽象(インターフェイス)を設計することで詳細を置換しやすくなるように設計していきたい
  • テストを書く際には抽象を利用して、テストをパスするように具象を実装する開発手順でやってみて「抽象にはビジネスルール」「具象には実装の詳細」を実現してみたい