S SRP Single Responsibility Principle(単一責務の原則) 「クラスを変更する理由は1つでなければならない」 O OCP Open/closed principle(開放閉鎖の原則) 「クラスは拡張に対して開き、修正に対して閉じていなければならない」 L LSP Liskov substitution principle(リスコフの置換原則) 「派生型はその基本型と置換可能でなければならない」 I ISP Interface segregation principle(インターフェース分離の原則) 「クライアントが利用しないメソッドへの依存を強制してはならない」 D DIP Dependency inversion principle(依存性逆転の原則) 「上位のモジュールは下位のモジュールに依存してはならない。どちらのモジュールも「抽象」に依存すべきである。」