この記事について
- Clean Architecture 達人に学ぶソフトウェアの構造と設計を読んだ際の覚え書きです
覚え書き
ソースコードの依存関係が(具象ではなく)抽象だけを参照しているもの。それが、最も柔軟なシステムである。
このルールを絶対のものとして守り続けるのは明らかに現実的ではない。 ... 依存したくないのは、システム内の変化しやすい具象要素だ。
- 変化しやすい要素(ビジネスルールの詳細、実装の詳細)に依存しないように具象を参照せずに抽象を参照するようにする
- 抽象を参照することで具象を置換しやすくなり柔軟なシステムになる
抽象コンポーネントにはすべての上位レベルのビジネスルールが含まれる。具象コンポーネントには、これらのビジネスルールが操作する実装の詳細が含まれる。
- 下記を意識することで利用しやすい抽象、変更しやすい具象を作成していきたい
- 抽象にはビジネスルールを記載する
- 具象にはビジネスルールの操作(実装の詳細)を記載する
まとめ
- 利用しやすい、安定した抽象(インターフェイス)を設計することで詳細を置換しやすくなるように設計していきたい
- テストを書く際には抽象を利用して、テストをパスするように具象を実装する開発手順でやってみて「抽象にはビジネスルール」「具象には実装の詳細」を実現してみたい