单一职责原则 SRP
就一个类而言,应该仅有一个引起它变化的原因
开放封闭原则 OCP
软件实体(类,模块,函数等)应该是可以扩展的,但是不可修改的。也就是对扩展开放,对修改封闭。
Liskov 替换原则 LSP
子类型必须能替换掉他们的基本类型
依赖倒置原则 DIP
抽象不应该依赖于细节,细节应该依赖于抽象
接口隔离原则 ISP
不应该强迫客户依赖于他们不用的方法,接口属于客户,不属于它所在的类层次结构。
重用发布等价原则 REP
重用的粒度就是发布的粒度
共同重用原则 CCP
一个包中的所有类应该是共同重用的。如果重用了包中的一个类,那么就要重用包中的所有类。相互之间没有紧密联系的类不应该在同一个包中。
共同封闭原则 CRP
一个包中的所有类对于同一类性质的变化应该是共同封闭的。一个变化若对一个包影响,则将对包中的所有类产生影响,而对其他的包不造成任何影响。
无依赖原则 ADP
在包的依赖关系中不允许存在环,细节不应该被依赖。
稳定依赖原则 SDP
朝着稳定的方向进行依赖
稳定抽象原则 SAP
一个包的抽象程度应该和其他稳定程度一致。
摘自《敏捷软件开发》