含义 | |
---|---|
单一职责 | 一个类、接口、函数,只负责一件事情,只有一个原因引起变化。 |
里氏替换 | 所有声明为父类的地方,都可以使用子类的实例。 |
依赖倒置 | 上层模块,不应该依赖于下层模块的具体实现,而是依赖下层模块抽象出来的接口; |
接口隔离 | 要建立功能单一的接口 ,而不是臃肿的接口,减少对外暴露。 |
迪米特法则 | 一个对象,对其他对象知道得越少越好,减少对其它类具体实现的依赖。 |
开闭原则 | 对扩展开放、对修改封闭 |
接口,负责定义 public 方法;
抽象类,负责实现公共部分;
实现类,准确实现业务逻辑。
一、 单一职责原则
1. 含义
一个类、接口、函数,只负责一件事情,只有一个原因引起变化。
2. 好处
(1) 复杂性降低;
(2) 可读性提高;
(3) 可维护性提高;
(4) 变更引起的风险降低了,更容易做单元测试。
3. 实践难度
对 “职责” 和 “变化原因” 难易度量。
二、 里氏替换
1. 含义
所有声明为父类的地方,都可以使用子类的实例。
三、 依赖倒置
1. 含义
依赖倒置,是面向接口编程的具体定义,包含 3 点:
(1) 上层模块,不应该依赖于下层模块的具体实现,而是依赖下层模块抽象出来的接口;
(2) 抽象的接口,不应该依赖于具体的实现类;
(3) 实现类,需要满足抽象的接口。
2. 好处
(1) 减少类之间的耦合;
(2) 提高系统的稳定性,减少并行开发的风险;
(3) 提高代码可读性、可维护性;
–
四、 接口隔离
1. 含义
类之间的依赖关系,应该建立在最小的接口上。也就是说,要建立功能单一的接口 ,而不是臃肿的接口,减少对外暴露。保证接口纯洁性。
五、 迪米特法则
1. 含义
一个对象,对其他对象知道得越少越好,减少对其它类具体实现的依赖。
六、 开闭原则
1. 含义
对扩展开放、对修改封闭。