Ch11. コンポーネント設計¶
コンポーネント:ソフトウェアを構成するモジュール性の高い部品
オブジェクト指向における基本的な設計の原則¶
OCP: Open-Closed Principle¶
モジュールは拡張に対して開いて(open)いなければならず、変更に対して閉じて(close)いなければならない
例えば「決済手段」などのあとから新規追加されうるものによる処理の条件分岐をif-elseで実装すると、新たな選択肢の追加でif文を変える必要があるが、各決済手段を共通するインターフェースのclassにしていれば、新しいclassの追加だけで済む
リスコフの置換原則(LSP)¶
派生クラスは基底クラスと置換可能でなければならない
依存性逆転の原則(DIP)¶
抽象に依存し、具象に依存させない。
コンポーネントが別のコンポーネントの具象に依存すると、拡張は難しくなる。
インターフェース分離の原則¶
それぞれのクライアントごとに専用のインターフェースを提供するほうが、単一の汎用的なインターフェースを提供するよりよい