一:单一职责原则(SRP): (Single Responsibility Principle 简称 SRP)
就一个类而言,应该只有一个引起他变化的原因。
如果一个类承担的职责过多,就等于将这些职责耦合在一起,一个职责发生变化可能会削弱或抑制这个类完成其他职责的能力。这种耦合会导致脆弱的设计,当变化发生时,设计会遭到意想不到的破坏。
软件设计就是要发现则这并把那些职责相互分离。如果有多余一个动机去改变一个类那么这个类就有多余一耳光职责。
二: 开放封闭原则(OCP):(The Open-Closed Principle 简称 OCP)
软件实体(类,模块,函数等等)应该是可以扩展的,但是不可修改的。
遵循开放封闭原则设计出的模块就有两个特征。
1. 对于扩展是开放的(Open for extension)
模块的行为是可以扩展的,当应用需求改变时,对模块进行扩展,使其满足那些改变的新行为。既可以改变模块的功能。
2. 对于更改是封闭的(Closed for modification)
对模块进行扩展时,不必改动模块的源代码或二进制代码。
三: Liskov 替换原则(LSP) :里氏代换原则
子类型(subType)必须能够替换掉他们的基类(baseType)。【ASD】
四:依赖倒置原则(DIP):
1.高层模块不应该一类于低层模块,二者都应该依赖于抽象。【ASD】
2.抽象不应该依赖于细节,细节应该依赖于抽象。【ASD】
五:接口隔离原则(ISP):
不应该强迫客户依赖于他们不用的方法。【ASD】
六: 迪米特法则(LoD)
如果两个类不必彼此直接通信,哪么这两个类就应当发生直接的相互作用。如果其中一个类需要调用另一个类的某一个方法的话,可以通过 第三针转发这个调用。【J&DP】