一、设计模式常用设计原则:SOLID 原则
设计模式的六大原则有:
Single Responsibility Principle:单一职责原则 (⼀个类和⽅法只做⼀件事)
Open Closed Principle:开闭原则 (抽象架构,扩展实现,对扩展开放,对修改关闭)
Liskov Substitution Principle:里氏替换原则 (多态,⼦类可扩展⽗类)
Law of Demeter:迪米特法则 (最少知道,降低耦合)
Interface Segregation Principle:接口隔离原则 (建⽴单⼀接⼝)
Dependence Inversion Principle:依赖倒置原则 (细节依赖抽象,下层依赖上层)
把这6个原则的首字母(里氏替换原则和迪米特法则的首字母重复,只取一个)联合起来
就是SOLID (稳定的)
1. 单一职责
定义:一个对象应该只包含单一的职责,并且该职责被完整地封装在一个类中。(Every object should have a single responsibility, and that responsibility should be entirely encapsulated by the class.),即又定义有且仅有一个原因使类变更。
简单理解:一个类只负责一项职责,不能将太多的职责放在一个类中
类、接口、方法都需要遵守单一职责
2、开闭原则:对扩展开放,对修改关闭
定义:一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。
模板方法模式和观察者模式都是开闭原则的极好体现
实现开闭原则的关键就是抽象化
3、里氏替换法则
任何基类可以出现的地方,子类也可以出现
4、迪米特法则
也称为最少知识原则(Least Knowledge Principle, LKP)。虽然名字不同。伯描述的是同—个规则;—个对象应该对其他对象有最少的了解。通俗地讲,一个类应该对自己需要耦合或调用的类知道得最少,你(被耦合或调用的类)的内部是如何复杂都和我没关系,那是你的事情,我就知道你提供的这么多public方法,我就调用这么多,其他的我一概不关心。
只和朋友类的定义是这样的;出现在成员变量、方法的输入输出参数中的类称为成员朋友类,而出现在方法体内部的类不属于朋友类
5、接口隔离原则
客户端不应该依赖它不需要的接口;一个类对另一个类的依赖应该建立在最小的接口上
不能强迫用户去依赖那些他们不使用的接口。换句话说,使用多个专门的接口比使用单一的总结口要好。
6、依赖倒置原则
定义:高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象
简单理解就是面向接口编程