第8章 OCP: オープン・クローズドの原則
SOLID原則のうちの O
OCP
「ソフトウェアの構成要素は拡張に対しては開いていて、修正に対しては閉じていなければならない」
ソフトウェアの振る舞いは、既存の成果物を変更せずに拡張できるようにすべきであるということ
多くのソフトウェア設計の研究者は、OCPはクラスやモジュールを設計する際の指針となる原則だと考えている
しかし、コンポーネントレベルを考量した際に、さらに重要になる
変更の影響を受けずに、システムの拡張をしやすくすために、システムをコンポーネントに分割し、依存関係を階層構造にする
そして、上位レベルのコンポーネントが下位レベルのコンポーネントの変更の影響を受けないようにする