0%

六种设计原则

含义
单一职责 一个类、接口、函数,只负责一件事情,只有一个原因引起变化。
里氏替换 所有声明为父类的地方,都可以使用子类的实例。
依赖倒置 上层模块,不应该依赖于下层模块的具体实现,而是依赖下层模块抽象出来的接口;
接口隔离 要建立功能单一的接口 ,而不是臃肿的接口,减少对外暴露。
迪米特法则 一个对象,对其他对象知道得越少越好,减少对其它类具体实现的依赖。
开闭原则 对扩展开放、对修改封闭

接口,负责定义 public 方法;
抽象类,负责实现公共部分;
实现类,准确实现业务逻辑。

一、 单一职责原则

1. 含义

一个类、接口、函数,只负责一件事情,只有一个原因引起变化。

2. 好处

(1) 复杂性降低;
(2) 可读性提高;
(3) 可维护性提高;
(4) 变更引起的风险降低了,更容易做单元测试。

3. 实践难度

对 “职责” 和 “变化原因” 难易度量。


二、 里氏替换

1. 含义

所有声明为父类的地方,都可以使用子类的实例。


三、 依赖倒置

1. 含义

依赖倒置,是面向接口编程的具体定义,包含 3 点:
(1) 上层模块,不应该依赖于下层模块的具体实现,而是依赖下层模块抽象出来的接口;
(2) 抽象的接口,不应该依赖于具体的实现类;
(3) 实现类,需要满足抽象的接口。

2. 好处

(1) 减少类之间的耦合;
(2) 提高系统的稳定性,减少并行开发的风险;
(3) 提高代码可读性、可维护性;

四、 接口隔离

1. 含义

类之间的依赖关系,应该建立在最小的接口上。也就是说,要建立功能单一的接口 ,而不是臃肿的接口,减少对外暴露。保证接口纯洁性。


五、 迪米特法则

1. 含义

一个对象,对其他对象知道得越少越好,减少对其它类具体实现的依赖。


六、 开闭原则

1. 含义

对扩展开放、对修改封闭。