The SingleResponsibilityPrinciple(SRP)
責務単一原則
The OpenClosedPrinciple(OCP)
開放閉鎖原則
A module should be open for extension but closed for modification.
モジュールは拡張に対して開いており、変更に対しては閉じている必要がある。
The LiskovSubstitutionPrinciple(LSP)
Liskovの置換原則
Subclasses should be substitutable for their base classes.
サブクラスは基本クラスと置換可能でなければならない。
The DependencyInversionPrinciple(DIP)
依存性逆転原則
Depend upon Abstractions. Do not depend upon concretions.
依存は抽象的にする。実装に対して依存させてはならない。
The InterfaceSegregationPrinciple(ISP)
インタフェース分離原則
Many client specific interfaces are better than one general purpose interface
汎用的なひとつのインタフェースよりも、多くの特化したインタフェースを利用する。