そんなの関係ねぇ、はいっ、OCP


OCPとは

Open Closed Principle.

オープン・クローズドの原則

拡張に対して開いていて、修正に対して閉じている

オープン・クローズドの原則とは、コードは拡張に対して開いていて、修正に対して閉じているべきという考え方です。
つまり機能を追加しても、それを使っているいずれの処理も影響を受けないというような設計のことになります。

JavaでいうところのInterfaceがその役割に近いでしょうか。中身の実装が変わっても、引数や戻り地はInterfaceが保証してくれるので、その部分でのデグレは起きません。

こういう設計にしていると後の仕様変更に対応しやすかったりします。

つまり

先に書いたコピペ駆動開発なんてまさに理想のOCPなんですが、コードが冗長になって別な部分で不都合を生むので、プロジェクトの状況に応じてバランスよく取り入れる必要があります。