単一責任の原則(SRP: Simple Responsibility Principle)
1つのクラスは1つの責任を全うしなければいけない.
インターフェース分離の原則(ISP: Interface Separated Principle)
インターフェースは,クライアントが必要としないメソッドを実装する責任を実装クラスに強制してはいけない.
インターフェースにおける単一責任のイメージ.
オープン・クローズドの原則(OCP: Open Closed Principle)
システムは,
- 「変更」に対して閉じていて
- 「拡張」に対して開いて
いなければいけない.
リスコフの置換原則(LSP: Liskov Substitute Principle)
あるクラス S とその継承クラス R があるとき,S は R に置き換え可能でなければいけない.
R は,S の動作として想定されていること以上の処理をしてはいけない.
依存関係逆転の原則(DIP: Dependency Inversion Principle)
上位に位置するクラスは下位のクラスに依存してはいけない.
システムの構成要素は,抽象に依存するべきである.