1、基本介绍
依赖倒转原则(Dependence Inversion Principle),他有五个点需要我们去掌握,如下:
(1)高层模块不应该依赖低层模块,二者都应该依赖其抽象(何为抽象:抽象类或者接口我们就称为抽象,换言之就是可以去依赖接口,也可以去依赖抽象类,但是不能去依赖一个具体的子类)。
(2)抽象不应该依赖细节,细节应该依赖抽象。
(3)依赖倒转(倒置)的中心思想是面向接口编程。
(4)依赖倒转原则是基于怎样的理念来设计的呢?我们程序员在开发的过程中,发现有这样的一种规律:相对于细节的多变性,我们抽象的东西要相对稳定的多(也就是说高层的相对来说要稳定一些)。以抽象为基础搭建的架构比以细节为基础的架构要稳定的多。因此在java中,抽象指的是接口或抽象类(这也是为什么我们在后面学设计模式的时候,往往他的高层模块都是接口或者是抽象类),而细节就是具体的实现类。
(5)使用接口或抽象类的目的是制定好规范(这也就是我们经常所说的接口和抽象类的价值在什么地方呢?在于设计),而不涉及任何具体的操作,把展现细节的任务交给他们的实现类(也就是他的子类)去完成。
2、应用案例,如下步骤:
下面的案例我们先演示不用依赖倒转会出现什么问题,使用了依赖倒转原则又会让我们程序有什么好的地方。所以我们要有一个场景,说有一个Person类,他里有一个接收消息的功能。
(1)方案一使用传统方法实现Person类接受消息
(2)方案二使用依赖倒转原则进行优化
3、依赖关系传递的三种方式和应用案例
关于依赖关系我们后面UML类图学习的时候还要细说一下,这们我们先要明白依赖关系在我们代码当中有三种方式传递值(对象),如下:
4、依赖倒转原则的注意事项和细节:
(1)低层模块尽量都要有抽象类或接口(比如A类是个子类,那么他的上一级尽量继承抽象类或实现接口,尽量不要让一个类孤零零在哪里,除非有特殊情况),或者两者都有,程序稳定性更好。
(2)变量的声明类型尽量是抽象类或接口, 这样我们的变量引用和实际对象之间,就存在一个缓冲层,利于程序扩展和优化,如上面的"3、依赖关系传递的三种方式和应用案例"。
(3)继承时遵循里氏替换原则。
原文转载:http://www.shaoqun.com/a/493321.html
巨鲸:https://www.ikjzd.com/w/1986
墩煌网:https://www.ikjzd.com/w/189
欧苏丹:https://www.ikjzd.com/w/1756
1、基本介绍依赖倒转原则(DependenceInversionPrinciple),他有五个点需要我们去掌握,如下:(1)高层模块不应该依赖低层模块,二者都应该依赖其抽象(何为抽象:抽象类或者接口我们就称为抽象,换言之就是可以去依赖接口,也可以去依赖抽象类,但是不能去依赖一个具体的子类)。(2)抽象不应该依赖细节,细节应该依赖抽象。(3)依赖倒转(倒置)的中心思想是面向接口编程。(4)依赖倒转原
kkr:kkr
Sunrate:Sunrate
泰国:放慢脚步 品味泰式慢生活 - :泰国:放慢脚步 品味泰式慢生活 -
2018亚马逊Prime Day各站点Best Seller盘点!:2018亚马逊Prime Day各站点Best Seller盘点!
口述:我当家教 女主人就围一块小浴巾家教女主人暧昧:口述:我当家教 女主人就围一块小浴巾家教女主人暧昧
没有评论:
发表评论