`
suhongliang5332
  • 浏览: 22538 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

设计模式的6大原则-依赖倒转原则

阅读更多


 1.什么是依赖倒转原则

   要依赖于抽象,不要依赖于具体。

   简单的说就是要求对抽象进行编程,不要对实现进行编程,这样就降低了客户与实现模块间的耦合。

   要求客户端依赖于抽象耦合(耦合发生在一个具体类和一个抽象类[或者是接口]之间)(关键)

2..为什么要使用依赖倒转原则?

   传统的过程性代码系统的设计办法倾向于使高层模块依赖于低层次的模块,抽象层依赖于实现层。DIP就是要把这个错误的依赖关系倒转过来。

    抽象层:是应用系统的业务逻辑和宏观的,对整个系统起到重要的战略性的决定的,是必然性的体现。

    具体层:是一些次要的与实现有关的算法和逻辑,是战术性的决定,带有相当大的偶然性。

    具体层次的代码会经常的变动,不能避免的出现错误。如果是抽象层依赖于具体层的话,那么具体层的变化就会立即影响到抽象层的宏观业务逻辑,导致微观决定宏观,战术决定战略,微观决定宏观的荒唐事情出现。

3.复用与可维护性的倒转

   传统模式的复用和维护:具体层次的复用,比如算法,数据结构,函数库的复用,会导致依赖于每一行代码。

   DIP模式的复用和维护:抽象层业务逻辑的复用,是做决定的地方,较为稳定。

    实现:抽象层次的模块要相对于独立月具体层次的模块的话,那么抽象的模块的复用就相对容易了。

4.如何做到DIP

   针对接口编程而不是针对实现编程:应当使用Java接口和Java抽象类进行变量的类型声明,参量的类型声明,方法的返还类型声明,以及数据类型的转换等。要保证做到这一点,一个具体Java类应当只实现Java接口和抽象Java类中声明过的方法,而不应到给出多余的方法。

    以抽象方式耦合是依赖倒转原则的关键。由于一个抽象耦合关系总要涉及具体类从抽象类基础,并且需要保证在任何应用到基类的地方都可以换成其子类,因此,里氏代换原则是依赖倒转原则的基础。

    涉及到的设计模式:

     工厂模式,模版模式,迭代子模式

  

 

   

  • 描述: 传统错误的依赖关系
  • 大小: 56.1 KB
  • 描述: 新的正确的依赖关系
  • 大小: 51.4 KB
分享到:
评论

相关推荐

    设计模式之依赖倒转原则

    c# 设计模式 依赖倒转

    设计模式(五)之依赖倒转原则.zip

    依赖倒置原则的包含如下的三层含义: 1. 高层模块不应该依赖低层模块,两者都应该依赖其抽象 2. 抽象不应该依赖细节 3. 细节应该依赖抽象 就是面向接口编程,采用依赖倒置原则可以减少类间的耦合性...

    设计模式6大原则

    设计模式原则:单一职责原则,里氏替换,依赖倒转,接口隔离,开放关闭等等。

    24种设计模式介绍与6大设计原则

    3、依赖倒转原则(Dependence Inversion Principle) 这个是开闭原则的基础,具体内容:真对接口编程,依赖于抽象而不依赖于具体。 4、接口隔离原则(Interface Segregation Principle) 这个原则的意思是:使用...

    七种设计模式详解讲解文档-面试必备

    七种设计模式详解讲解文档-面试必备:策略设计模式,单例设计模式,单一职责模式,简单工厂设计模式,开放封闭设计模式,依赖倒转原则,装饰者模式。

    尚硅谷设计模式源码笔记课件.zip

    1) 内容包括: 设计模式七大原则(单一职责、接口隔离、依赖倒转、里氏替换、开闭原则、迪米特法则、合成复用)、UML类图(类的依赖、泛化和实现、类的关联、聚合和组合) 23种设计模式包括:创建型模式:单例模式(8种...

    24种设计模式C#版

    3、依赖倒转原则【DEPENDENCE INVERSION PRINCIPLE】:高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。即针对接口编程,不要针对实现编程。 4、接口隔离原则...

    设计模式——6大软件设计原则(demo案例实现,附带解析,快速掌握软件设计原则的精髓)

    3、依赖倒转原则 4、接口隔离原则 5、迪米特法则 6、合成复用原则 使用了一个个的demo案例,以通俗易懂的生活案例解析软件开发设计原则,掌握开发细节。写出耦合度低、易于扩展、更容易维护的优质代码 代码中的...

    用 Objective-C 实现《大话设计模式》书中的例子,并用一些 Objective-C 的特性对例子的实现加以优化

    依赖倒转原则(DIP),A. 高层模块不应该依赖低层模块,两个都应该依赖抽象。B. 抽象不应该依赖细节,细节应该依赖抽象。 里氏代换原则(LSP),子类型必须能够替换掉它们的父类型。 迪米特法则(LoD),如果两个类...

    对面向对象设计原则的总结

    对面向对象设计原则的总结,设计模式:“开-闭”原则,里氏代换原则、依赖倒转原则、合成/聚合复用原则、迪米特法则、接口隔离原则

    Java设计模式-面向对象七大设计原则

    例如:随着计算机的不断发展,程序学习这门技术也越来越重要,很多人都开启了...面向对象设计原则一共有七个:开闭原则、里氏替换原则、依赖倒转原则、单一职责原则、接口隔离原则、组合/聚合复用原则、迪米特法则。

    Java 设计模式

    3、依赖倒转原则(Dependence Inversion Principle)  这个是开闭原则的基础,对接口编程,依赖于抽象而不依赖于具体。 4、接口隔离原则(Interface Segregation Principle)  使用多个隔离的借口来降低耦合度...

    设计模式Demo

    3、依赖倒转原则(Dependence Inversion Principle) 这个是开闭原则的基础,具体内容:真对接口编程,依赖于抽象而不依赖于具体。 4、接口隔离原则(Interface Segregation Principle) 这个原则的意思是:使用...

    java 设计模式与Jar库

    java 设计模式与Jar库 里氏代换原则LSP 依赖倒转原则DIP 接口隔离原则ISP 合成/聚合复用原则CARP

    学习JAVA-23种设计模式

    学习JAVA-23种设计模式。1.设计模式的分类2.设计模式的六大原则3.依赖倒转原则4.接口隔离原则5.迪米特法则6.合成复用原则...

    C++设计模式

    依赖倒转原则 7 (三)装饰模式 7 (四)代理模式 9 (五)工厂方法模式 11 (六)原型模式 13 (七)模板方法模式 15 迪米特法则 16 (八)外观模式 16 (九)建造者模式(生成器模式) 19 (十)观察者模式 23 ...

    依赖倒置原则Demo

    http://blog.csdn.net/xingjiarong/article/details/50094307

    C++ Design Pattern 23种设计模式(全_解释+源代码).zip

    C++ 23种设计模式(全_解释+源代码).zip 23种设计模式都是基于以下原则,务必记牢 依赖倒转原则 里氏代换原则 开闭原则 接口隔离原则 合成聚合复用原则 迪米特法则 23种设计模式如下:

    《设计模式实训教程》【PPT+类图与代码+样章】

    2.1.5依赖倒转原则 2.1.6接口隔离原则 2.1.7合成复用原则 2.1.8迪米特法则 2.2实训实例 2.2.1单一职责原则实例分析 2.2.2开闭原则实例分析 2.2.3里氏代换原则实例分析 2.2.4依赖倒转原则实例分析 2.2.5接口...

Global site tag (gtag.js) - Google Analytics