オープン・クローズドの原則
オープン・クローズドの原則(Open/Closed Principle; OCP)、開放/閉鎖の原則
オブジェクト指向設計でのSOLID原則の一つ
software entities (classes, modules, functions, etc.) should be open for extension, but closed for modification.
ref: Meyer, Bertrand (1988). Object-Oriented Software Construction. Prentice Hall. ISBN 0-13-629049-3
↓
>ソフトウェアエンティティ(クラス、モジュール、関数など)は、拡張に対しては開放的(open)であるべきだが、変更に対しては閉鎖的(closed)であるべきである。
どういうことだってばよ
開いている/開放的/オープン
既存のソフトウェアエンティティ(クラス、モジュール、関数など)に対して機能追加が可能である
閉じている/閉鎖的/クローズド
ある機能追加に際に既存のソフトウェアエンティティ(クラス、モジュール、関数など)を修正する必要がない
主語や目的語が省略がちでどうも理解できなかったがこういうことのはず
委譲で実装ができそう
確認用
Q. 開いている(オープン)とは
Q. 閉じている(クローズ)とは
Q. この原則の目的は?
Q. 原則に違反している実装例は
Q. 原則に則っている実装例は
関連
サブタイピング
責務
Factory Pattern
エンティティ
参考
開放/閉鎖原則 - Wikipedia
Meyer, Bertrand (1988). Object-Oriented Software Construction. Prentice Hall. ISBN 0-13-629049-3
Robert C. Martin "The Open-Closed Principle", C++ Report, January 1996 Archived August 22, 2006, at the Wayback Machine.
Open-Closed Principle とデザインパターン.
メモ
オープン・クローズドの原則の重要性について. | by riki | Eureka Engineering | Medium
その3 拡張できて修正不要の原則 : OCP
【SOLID】オープン・クローズドの原則を完全に理解したい #C# - Qiita
5分で理解するオープン・クローズドの原則 #PHP - Qiita
SOLID原則を“暗記で終わらせない”ために:料金計算で腹落ちさせる #Python - Qiita
#設計