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

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

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

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

 

 

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

 

 

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

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

 

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

相关文章
相关标签/搜索