单一职责原则(SRP)
就一个类而言,应该只有一个引起变化的原因
如果你能想到多余一个的动机去改变一个类,
那么这个类就具有多于一个的职责。
开放封闭原则(OCP)
对于扩展是开放的
对于更改是封闭的
Liskov替换原则(LSP)
子类型(subtype)必须能够替换掉它们的基类型(base type)
依赖倒置原则(DIP)
高层模块不应该依赖于底层模块。二者都应该依赖于抽象
抽象不应该依赖于细节。细节应该依赖于抽象。
任何变量都不应该持有一个指向具体的指针或引用
任何类都不应该从具体类派生
任何方法都不应该覆写他的任何基类中的已经实现了的方法
接口隔离原则(ISP)
不应该强迫客户依赖于它们不用的方法