前言:学习设计模式,必定会接触到设计模式原则,所以碰到的时候也加深一下设计模式的原则。
依赖倒置原则(Dependence Inversion Principle)
定义:是程序要依赖于抽象接口,不要依赖于具体实现。简单的说就是要求对抽象进行编程,不要对实现进行编程,这样就降低了客户与实现模块间的耦合。
A.高层次的模块不应该依赖于低层次的模块,他们都应该依赖于抽象。
B.抽象不应该依赖于具体实现,具体实现应该依赖于抽象。
类图:
为什么?
如果高层模块直接依赖低层模块,则类图如下,这时,如果低层模块有一点小小的变动,高层模块就有可能需要跟着变动,这样的耦合太高。
可以详见:百度百科(https://baike.baidu.com/item/%E4%BE%9D%E8%B5%96%E5%80%92%E7%BD%AE%E5%8E%9F%E5%88%99/6189149)
总结:
依赖倒转原则其实可以说是面向对象的标志,用哪种语言来编写程序不重要,如果编写时考虑的都是如何针对抽象编程而不是针对细节编程,即程序中所有的依赖关系都是终止于抽象类或者接口,那这就是面向对象设计,反之就是过程化的设计了。