もくじ
S 単一責任の原則
O Open Closed
- オープン・クローズドの原則(Open-Closed Principle)
拡張に開いていて、変更には閉じていなければいけない … 拡張した時に変更が発生しない設計にすること。
→クラスの追加で対応できるようにする
抽象クラス、もしくはインターフェイスで対応できるようにする
L リスコフの置換原則
親クラスと継承した子クラスA, 子クラスBを入れ替えてもクライアントで呼び出した時の振る舞いを変えてはいけない。ちゃんと動くように作ろう。
I インターフェイス分離の原則
「汎用的な目的のインターフェイスが1つだけあるよりも、特定のクライアント向けのインターフェイスが多数あった方がよりよい。」
そのまま。
グループ毎にInterfaceは分離させましょう、ということ。
D 依存性逆転の原則
呼び出し側(抽象、ビジネスモジュール)は具体(詳細、実装モジュール)を利用する時にInterfaceを用いることで、詳細に依存しないようにする。
// ただし、Interface自体には依存している。通常はないけれど、Interfaceのコードを変更する場合は、呼び出し側の変更も必要になるので注意が必要。
@see