オブジェクト指向設計の原則をソラで言ってみる - diary の答え合わせ.
単一責任の原則(SRP: Simple Responsibility Principle)
クラスを変更する理由は1つ以上存在してはならない.
オープン・クローズドの原則(OCP: Open Closed Principle)
ソフトウェアの構成要素(クラス,モジュール,関数など)は
- 「拡張」に対して開いて(オープン:Open)
- 「修正」に対して閉じて(クローズド;Closed)
いなければいけない.
リスコフの置換原則(LSP: Liskov Substitute Principle)
派生型はその基本型と置換可能でなければいけない.
依存関係逆転の原則(DIP: Dependency Inversion Principle)
- 上位のモジュールは下位のモジュールに依存してはならない.どちらのモジュールも「抽象」に依存するべきである.
- 「抽象」は実装の詳細に依存してはならない.実装の詳細が「抽象」に依存するべきである.
インターフェース分離の原則(ISP: Interface Separated Principle)
クライアントに,クライアントが利用しないメソッドへの依存を強制してはならない.