美文网首页
设计原则——依赖倒置原则

设计原则——依赖倒置原则

作者: 翻身小白菜 | 来源:发表于2020-06-17 22:21 被阅读0次

定义


依赖倒置原则(Dependency Inversion Principle)指:

  • 高层模块不能依赖低层模块,而是大家都依赖于抽象
  • 抽象不能依赖实现,而是实现依赖抽象

这里的核心在于:是高层定义好调用的接口抽象,低层去实现这个接口抽象,是高层决定了低层。而不是低层定义接口,让高层去调用。
这样的好处是,接口是面向业务定义的接口。而如果低层调用接口,很可能会导致接口难以重用。

例子


一个开关的小例子


根据依赖导致原则改进后为:



这里的一个重点是接口的名称为ButtonServer,是从Button角度考虑定义的接口。这样添加各种功能只用继承ButtonServer,并实现接口就好,不用修改Button。
如果从低层Lamp角度考虑,定义的接口更可能叫做LampServer。如果后期Button添加了新功能,可以调用报警器Buzzer了,低层角度定义的接口,那就需要再添加一个BuzzerServer。
扩展这个思想,当前后端有调用交互时,推荐前端定义接口。
框架设计,也是基于依赖倒置原则设计的软件。框架调用业务,而不是业务调用框架。

好莱坞原则,

Don't call me, I'll call you.

也传达了相同的思想。因此,有时依赖倒置原则,也可以称为好莱坞原则。

应用举例


Jave、Python语言中的单元测试框架JUnit、unittest,也是定义好了接口,把test case写好,框架调用自然会调用测试例子。

PS:正在学习《架构师训练营》,学习思考汇总,如有不完善,欢迎探讨

相关文章

  • 软件架构设计原则之依赖倒置原则

    1 依赖倒置原则 依赖倒置原则(Dependence Inversion Principle,DIP)是指设计代码...

  • 依赖倒置原则

    个人博客原文:依赖倒置原则 设计模式六大原则之三:依赖倒置原则。 简介 姓名 :依赖倒置原则 英文名 :Depen...

  • 六大设计原则 -依赖倒置原则【Dependence Invers

    六大设计原则 单一职责原则 里式替换原则 依赖倒置原则 接口隔离原则 迪米特原则 开闭原则 依赖倒置原则 定义:高...

  • 设计模式的设计原则

    设计模式的设计原则 面向对象五大设计原则 单一职责原则 里氏替换原则 依赖倒置原则 接口隔离原则 开闭原则 设计模...

  • Java 依赖倒置 控制反转

    软件开发六大设计原则 合称SOLID 依赖倒置原则也是其中一个 依赖倒置原则定义: 上层模块不应该依赖底层模块,它...

  • 第二周

    请描述什么是依赖倒置原则,为什么有时候依赖倒置原则又被称为好莱坞原则? 依赖倒置原则 Dependency Inv...

  • Swift设计模式----目录

    面向对象设计原则: 开闭原则 单一职责原则 依赖倒置原则 接口分离原则 迪米特法则 里氏替换原则 面向对象设计模式...

  • 依赖倒置/好莱坞原则/控制反转

    # 请描述什么是依赖倒置原则,为什么有时候依赖倒置原则又被称为好莱坞原则? 依赖倒置原则: - 高层模块不应该依赖...

  • [设计原则]依赖倒置原则

    依赖倒置原则(DIP)原则的原始定义: 高层模块不应该依赖低层模块,两者都应该依赖其抽象。 抽象不应该依赖细节。 ...

  • 设计原则——依赖倒置原则

    定义:1.高层模块不应该依赖低层模块,二者都应该依赖其抽象;2.抽象不应该依赖细节;3.细节应该依赖抽象。 因为D...

网友评论

      本文标题:设计原则——依赖倒置原则

      本文链接:https://www.haomeiwen.com/subject/ateexktx.html