SOLID原則
S: 単一責任の原則(Single Responsibility)
O: オープン・クローズドの原則(Open/Closed)
L: リスコフの置換原則(Liskov substitution)
I: インターフェース分離の原則(Interface segregation)
D: 依存関係逆転の原則(Dependency inversion)
単一責任の原則
クラスは単一の責任を持つべき
オープン・クローズドの原則
クラスは、拡張にはオープンで変更にはクローズであるべき
リスコフの置換原則
部品Tとその派生型である部品Sがあるとき、部品Tが使われている箇所はすべて部品Sで置換可能になるように部品Sはつくられているべき
親の決まりを子が破ってはいけない
インターフェイス分離の原則
クライアントが使用しないメソッドへの依存を強制すべきでない
依存関係逆転の原則
- 上位モジュールは下位モジュールに依存してはならない。抽象化に依存すべきだ
- 抽象化は詳細に依存してはならいない。詳細が抽象化に依存すべきだ
別のモジュールを参照するときは実装ではなくインターフェイスを挟む