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

2020-06-17  本文已影响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:正在学习《架构师训练营》,学习思考汇总,如有不完善,欢迎探讨

上一篇 下一篇

猜你喜欢

热点阅读