一、单一职责原则
- Single Responsibility Principle,简称SRP。
- 单一职责原则的定义是:应该有且仅有一个原因引起类的变更。
二、里氏替换原则
- Liskov Substitution Principle,LSP
- 定义1:如果每一个类型为S的对象o1,都有类型为T的对象o2,使得以T定义的所有程序P在所在的对象o1都代换成o2时,程序P的行为没有发生变化,那么类型S是类型T的子类型。
- 定义2:所有引用基类的地方必须能透明的使用其子类的对象。
三、依赖倒置原则
- Dependence Inversion Principle,DIP
- 高层模块不应该依赖底层模块,两者都应该依赖其抽象
- 抽象不应该依赖细节
- 细节应该依赖抽象
- 依赖倒置原则在Java语言中的表现就是:
- 模块间的依赖通过抽象发生,实现类直接不发生直接的依赖关系,其依赖关系是通过接口或抽象类产生的
- 接口或抽象类不依赖于实现类
- 实现类依赖接口或抽象类
四、接口隔离原则
- 客户端不应该依赖他不需要的接口
- 类间的依赖关系应该建立在最小的接口上
五、迪米特法则
- Law of Demeter,LoD,也称最少知识原则(Least Knowledge Principle,LKP)
- 一个对象应该对其他对象有最少的了解
六、开闭原则
- 一个软件实体如类、模块和函数应该对扩展开放,对修改关闭