私は最近、基本的な設計原理について学ぼうとしていますが、OCPは少し混乱しています。変更が発生した場合、既存の動作中のパーツを変更するよりも、システムを拡張する方が望ましいことは理にかなっています。しかし、これは、システムを設計する方法ではなく、システムに変更を実装する方法の原則ではありませんか?基本的に、すべてのコードがサブクラス化を使用して拡張できるようになっているのではありませんか?そして、どのようにコードを変更のために閉じることができますか?それは、変更を実装する人がそれを使用することを選択する方法に依存するだけではありませんか?
おそらく、OCPに従わないコードの例と、それが原則にどれほど正確に違反しているかは、私がこれを理解するのに最も役立ちます。
ありがとう