设计模式六大原则
单一职责原则
单一职责原则英文名Single Responsibility Principle 简称SRP。
一个类应该只有一个引起变化的原因。
里式替换原则
里氏替换原则(Liskov Substitution Principle,LSP):
第一种定义:
如果对每一个类型为S的对象o1,都有类型为T的对象o2,使得以T定义的所有程序P在所有的对象o1都代换为o2,程序P的行为没有发生变化,那么类型S是类型T的子类型。
第二种定义:
所有引用基类的地方必须透明的使用其子类的对象。
第二种定义明确的说,只要父类能出现的地方子类也可以出现,而且替换为子类不会产生任何错误或异常,但是反过来就不行,有子类出现的地方,父类未必就能适应。
依赖倒置原则
依赖倒置原则(Dependence Inversion Principle ,DIP)
高层模块不应该依赖低层模块,两者都应该依赖抽象
抽象不应该依赖细节
细节应该依赖抽象
接口隔离原则
接口隔离有两种定义:
客户端不应该依赖它不需要的接口
那依赖什么呢?依赖它需要的接口,客户端需要什么接口就提供什么接口,把不需要的接口剔除,那就需要对接口进行细化,保证其纯洁性。
类间的依赖关系应该建立在最小的接口上
它要求是最小的接口,也是要求接口细化,接口纯洁。
迪米特法则
迪米特法则(Law of Demeter, LoD)也称为最少知识原则(Least Knowledge Principle,LKP)
一个对象应该对其他对象有最少的了解
只与直接的朋友通信。
开闭原则
一个软件实体如类,模块和函数应该对扩展开放,对修改关闭
一个软件产品只要在生命周期内,都会发生变化,即然变化是一个事实,我们就应该在设计时尽量适应这些变化,以提高项目的稳定性和灵活性,真正实现“拥抱变化”。开闭原则告诉我们应尽量通过扩展软件实体的行为来实现变化,而不是通过修改现有代码来完成变化,它是为软件实体的未来事件而制定的对现行开发设计进行约束的一个原则。
Single Responsibility Principle : 单一职责原则
Open Closed Principle : 开闭原则
Liskov Substitution Principle : 里式替换原则
Law of Demeter :迪米特法则
Interface Segregation Principle : 接口隔离原则
Dependence Inversion Principle : 依赖倒置原则
把这6个原则的首字母(里式替换原则和迪米特法则的首字母重复,只取一个)联合起来就是SOLD(solid,稳定的),其代表的含义也就是把这6个原则的结合时候的好处:简历稳定、灵活、健壮的设计,而开闭原则又是重中之重,是最基础的原则。