3D编程模式:介绍设计原则
大家好~本文介绍6个设计原则的定义
系列文章详见:
3D编程模式:开篇
单一职责原则(SRP)
定义:
- 只有一个原因引起变化
- 一次只做一件事情
依赖倒置原则(DIP)
定义:
- 高层模块不应该依赖低层模块,两者都应该依赖其抽象
- 抽象不应该依赖细节
- 细节应该依赖抽象
具体来说就是:
模块间的依赖通过抽象发生,实现类之间不发生直接的依赖关系,其依赖关系是通过接口或抽象类产生的;
接口或抽象类不依赖于实现类;
实现类依赖接口或抽象类。
接口隔离原则(ISP)
定义:
- 客户端不应该依赖它不需要的接口
- 类间的依赖关系应该建立在最小的接口上
也就是说,接口应该尽量细化,同时接口中的方法尽量少
迪米特法则(LoD)
也称为最少知识原则(LKP)
定义:
- 一个对象应该对其他对象有最少的了解
具体来说就是:
一个类应该对自己需要耦合或调用的类知道得最少,你(被耦合或调用的类)的内部是如何复杂都和我没关系,那是你的事情,我就知道你提供的这么多public方法
它包括两个方面:
- 只与直接的朋友通信
- 朋友间也是有距离的
合成复用原则(CARP)
定义:
- 要尽量使用组合而不是继承
开闭原则(OCP)
定义:
- 对扩展开放,对修改关闭
其含义是说一个软件实体应该通过扩展来实现变化,而不是通过修改已有的代码来实现变化。
更多资料
应用原则的具体案例请见设计原则视频