设计模式系列--23种常见设计模式之依赖倒转原则(4)

概念

依赖倒转原则(Dependence Inversion Principle, DIP)
1、高层模块不应该依赖低层模块,两者都应该依赖其抽象
2、抽象不应该依赖细节,细节应该依赖抽象

问题由来

依赖具体的细节后,需要扩展一个新的细节,就需要同步的对相关模块进行修改。

解决方案

抽象具体的实现过程,形成比如接口,抽象类等,依赖抽象层,具体的执行细节交给执行过程中再去决定(多态的原理)。

上一节说了开放封闭原则,讲究 要抽象和解耦,易扩展,所以依赖倒转原则的目的也是一致的。

简单理解比如 我们都知道 接口,定义了一类方法,而子类实现接口时,需要重写对应的方法,
当我们一个具体的外部去引用接口,而不直接引用具体的子类的过程就用到了依赖倒转原则。

举个例子:比如我们的台式机,某一天觉得cpu或者内存不够用了,怎么办,总不能直接把主机换了吧(也可以,有钱啥都行),
那我们就可以换掉cpu,或者换掉内存条。为什么呢,因为他们都是可插拔的,只要匹配同等的接口标准,支持对应的类型就可以。
而这个过程,就是因为主板依赖的是cpu、内存、显卡的标准抽象,而不是固定的某个具体的产品。

编者按:

依赖到转原则就是一种面向对象设计和编程的过程,都是在针对抽象而不是细节编程,区别于过程化,这个时候程序中的依赖也就终止于抽象类了。
 

猜你喜欢

转载自blog.csdn.net/weisong530624687/article/details/109519990