`

软件设计原则 之一:依赖倒转原则 DIP

    博客分类:
  • Java
阅读更多

软件设计原则 之一:依赖倒转原则 DIP

  依赖倒转原则(Dependency Inversion Principle)讲的是:要依赖于抽象,不要依赖于具体。

  依赖倒转原则的一种表述是:细节应当依赖于抽象,抽象不应当依赖于细节。

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

  java接口与java抽象类的区别:

  1.java抽象类可以提供某些方法的部分实现,而java接口不可以。

  2.一个抽象类的实现只能由这个抽象类的子类给出,一个类最多只能从一个超类继承。任何一个实现了一个java接口所规定的方法的类都可以具有这个接口的类型,一个类可以实现任意多个java接口。

  3.从代码重构的角度来说,使用重构接口比重构抽象类要容易多。

  4.java接口是定义混合类型(Mixin Type)的理想工具。所谓混合类型,就是一个类的主类型之外的次要类型。

  缺省适配模式

  声明类型的工作仍然是由java接口承担的,但是同时给出的还有一个java抽象类,为这个接口给出一个缺省实现。其他同属于这个抽象类型的具体类可以选择实现这个java接口,也可以选择继承自这个抽象类。

  依赖倒转原则假定所有的具体类都是会变化的,这也不总是正确的。有一些具体类可能是相当稳定的、不会发生变化的,客户端可以直接依赖于这些具体类型,而不必为此声明一个抽象类型

分享到:
评论

相关推荐

    依赖倒转原则例子程序DIP.zip

    依赖倒转原则例子程序DIP.zip

    依赖倒转原则

    依赖倒置原则(Dependence Inversion Principle,简称DIP)这个名字看着有点别扭,“依赖”还“倒置”,这到底是什么意思?依赖倒置原则的原始定义是:High level modules should not depend upon low level modules...

    SQL语句优化2

    依赖倒转原则(DIP):要依赖于抽象,不要依赖于具体。 接口隔离原则(ISP):使用多个专门的接口比使用单一的总接口要好。 合成/聚合复用原则(CARP):要尽量使用合成/聚合,尽量不要使用继承。 迪米特法则(LoD):一...

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

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

    java 设计模式与Jar库

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

    源码:阎宏设计模式光盘

    com.javapatterns.dip 依赖倒转原则 com.javapatterns.doubledispatch 专题:单分派与多分派 com.javapatterns.facade 门面模式 com.javapatterns.factorymethod 工厂方法模式 com.javapatterns.flyweight 享元...

    Java设计模式——工厂设计模式

    DIP(依赖倒转原则,Dependence Inversion Principle):要针对接口编程,不要针对实现编程。 LoD(迪米特法则,Law of Demeter):只与你直接的朋友通信,而避免和陌生人通信。 核心本质: 实例化对象,用工厂方法...

    JAVA与模式

    Java接口 com.javapatterns.liskov 里氏代换原则 com.javapatterns.dip 依赖倒转原则 com.javapatterns.isp 接口隔离原则 com.javapatterns.carp 组合/聚合复用原则 com.javapatterns.lod ...

    设计模式(四)——工厂模式

    工厂模式 意义 工厂模式 实现了创建者和调用者的分离。...DIP(依赖倒转原则,Dependence Inversion Principle):要针对接口编程,不要针对实现编程(不要让类继承具体类,而是继承抽象类或者是实现 i

    Design-Pattern:23种设计模式

    Design-Pattern 23种设计模式 创建型模式,共5种:单例模式、工厂模式、抽象工厂模式、建造者模式、原型模式。...依赖倒转原则( Dependence Inversion Principle ,DIP ) 接口隔离法则(Interface Segregation Prin

    Java与模式(含示例代码)

    第8 章 依赖倒转原则(DIP)..........95 8.1 为何而“倒转”...........................95 8.2 复用与可维护性的“倒转”.......96 8.3 依赖倒转原则...............................96 8.4 怎样做到依赖倒转原则....

Global site tag (gtag.js) - Google Analytics