设计模式-依赖反转分析

来源:互联网 发布:属性数据分析 编辑:程序博客网 时间:2024/06/09 03:18

上一篇文章中我复习了开放封闭原则,今天我来回顾下依赖倒转原则。

依赖倒转原则:
1.高层不依赖低层,高层和低层应依赖抽象
2.抽象不依赖细节。细节依赖抽象

这一原则是基于现实中完成一件事情手段的多样性,过程的稳定性而提出来的,手段对应细节,过程对应抽象。
在java中抽象可以有接口和抽象类来表示,细节有继承和实现来完成。程序的整体流程应通过接口之间行为的交互来完流动,动作的具体实现则有子类和实现类来掌控。
例如:主板有cpu,内存。显卡,风扇等构成,如果正对具体型号的配件进行编程,将会导致配件升级整个主板就被废弃掉,只针对主板上的某一个组件卡槽进行升级很可能和会导致与其他不见兼容不好而导致性能下降。为了避免这种情况的产生,我们将主板的构成抽象成接口,并辅以接口的对接协议来规范化相关组件的升级和研制,当主板无法支撑相关组件的性能时或组件有质的飞跃是修改接口和协议来进行变革。
由此可见面向接口编程的便利性,接口编程主要有三种实现方式:
1.接口传递
2.构造传递
3.setter传递
在实现依赖倒转原则时,我们要思考一下三方面:
1.低层模块尽量要有接口或者抽象类,或者都有。
2.变量的声明尽量是接口或抽象类。
3.要遵守里氏替换法则:子类一定能够替换父类。
此法则可以参照Sping中的实现方式来进一步学习和思考

原创粉丝点击