<Java设计模式>---依赖倒置原则(DIP)

来源:互联网 发布:worknc软件怎么样 编辑:程序博客网 时间:2024/05/17 02:25

什么是依赖倒置原则

  • 高层模块不应该依赖底层模块,两者都应该依赖器抽象。
  • 抽象不应该依赖细节,细节应该依赖抽象。
    个人理解,高层模块和抽象对应Java里面,应该是抽象类、接口,而底层模块和细节对应Java里面,应该就是具体的实现类,放在咱们开发中怎么理解他们之间的依赖关系呢?假如你需要完成一个功能,但是这个功能,不能自己一个类就能完成的,需要其他的类,那么这个时候就需要用到其他的类,那么你依赖的这个类,最好依赖他的父类或者接口。

举个例子

小王由于想玩一些大型的3D游戏,但是由于目前自己电脑配置太低了,于是想到去升级自己的电脑,于是他升级的配件有CPU、显卡、内存条、硬盘,咱们就以升级内存条为例,目前市场上内存条代次有DDR、DDR2、DDR3、DDR4,小王肯定要想看看自己电脑主板支持什么样的代词,然后去市场选购,这个时候他发现自己需要的DDR3代次的内存条,有不同的厂商产品,那么他只要根据自己需要的代次,选购就行了,根本不需要区分厂商。那么为什么不同厂商生产的内存的都可以使用呢?哈哈,这个就是依赖倒置原则,每个厂商都遵守不同代次的标准,就行了。所以小王只需要关心内存条的代次就行了,符合自己需要的代次的内存条都是可以使用的,压根不需要关心什么厂商生产的。

63d9f2d3572c11df4763bef6652762d0f603c2b1.jpg

代码中如何依赖

  • 构造函数传递依赖对象。
  • Setter方法传递依赖的对象。
  • 接口生命依赖的对象,简称接口注入。

代码具体实践

  • 每个类尽量都有接口和抽象类,或者都拥有。
  • 接口的表面类型尽量是接口或者是抽象类。
    尽量根据具体的业务来进行相关的处理,规则是死的,业务是活的,就像JavaBean,不见得非要搞接口和抽象类继承下吧。
  • 任何类都不应该从具体了派生。
    如果出现的这种情况,可以看看具体的业务,将两者提取一个抽象类或者接口,然后两者在进行继承。
  • 尽量不要覆写父类已经实现的方法。
  • 结合里斯替换原则进行使用。
阅读全文
0 0
原创粉丝点击