首页 > 其他 > 详细

01-03.依赖倒转原则(Dependence Inversion Principle)

时间:2020-11-29 10:27:07      阅读:31      评论:0      收藏:0      [点我收藏+]

1、基本介绍
依赖倒转原则(Dependence Inversion Principle),他有五个点需要我们去掌握,如下:
(1)高层模块不应该依赖低层模块,二者都应该依赖其抽象(何为抽象:抽象类或者接口我们就称为抽象,换言之就是可以去依赖接口,也可以去依赖抽象类,但是不能去依赖一个具体的子类)。
(2)抽象不应该依赖细节,细节应该依赖抽象。
(3)依赖倒转(倒置)的中心思想是面向接口编程
(4)依赖倒转原则是基于怎样的理念来设计的呢?我们程序员在开发的过程中,发现有这样的一种规律:相对于细节的多变性,我们抽象的东西要相对稳定的多(也就是说高层的相对来说要稳定一些)。以抽象为基础搭建的架构比以细节为基础的架构要稳定的多。因此在java中,抽象指的是接口或抽象类(这也是为什么我们在后面学设计模式的时候,往往他的高层模块都是接口或者是抽象类),而细节就是具体的实现类。
(5)使用接口或抽象类的目的是制定好规范(这也就是我们经常所说的接口和抽象类的价值在什么地方呢?在于设计),而不涉及任何具体的操作,把展现细节的任务交给他们的实现类也就是他的子类)去完成。

2、应用案例,如下步骤:
下面的案例我们先演示不用依赖倒转会出现什么问题,使用了依赖倒转原则又会让我们程序有什么好的地方。所以我们要有一个场景,说有一个Person类,他里有一个接收消息的功能。

(1)方案一使用传统方法实现Person类接受消息

技术分享图片

 

 

 (2)方案二使用依赖倒转原则进行优化

技术分享图片

 

 

 3、依赖关系传递的三种方式和应用案例

关于依赖关系我们后面UML类图学习的时候还要细说一下,这们我们先要明白依赖关系在我们代码当中有三种方式传递值(对象),如下:

技术分享图片

 

4、依赖倒转原则的注意事项和细节:
(1)低层模块尽量都要有抽象类或接口(比如A类是个子类,那么他的上一级尽量继承抽象类或实现接口,尽量不要让一个类孤零零在哪里,除非有特殊情况),或者两者都有,程序稳定性更好。
(2)变量的声明类型尽量是抽象类或接口, 这样我们的变量引用和实际对象之间,就存在一个缓冲层,利于程序扩展和优化,如上面的“3、依赖关系传递的三种方式和应用案例”。
(3)继承时遵循里氏替换原则。

01-03.依赖倒转原则(Dependence Inversion Principle)

原文:https://www.cnblogs.com/pickrecalled/p/14055369.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!