`

软件设计原则 之一:依赖倒转原则 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接口,也可以选择继承自这个抽象类。

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

分享到:
评论

相关推荐

    设计模式之依赖倒转原则

    依赖倒转原则(Dependency Inversion Principle,DIP)是面向对象设计的基本原则之一,它在软件工程中扮演着至关重要的角色。这个原则主要是为了降低模块之间的耦合度,提高系统的可扩展性和可维护性。在C#编程语言...

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

    依赖倒转原则(Dependency Inversion Principle,简称DIP)是软件设计中的一个重要原则,它属于SOLID设计原则之一。这个原则由Robert C. Martin在1994年提出,其核心思想是“高层模块不应该依赖于低层模块,两者都...

    第二十九讲:基础四依赖倒转原则

    依赖倒转原则(Dependency Inversion Principle,简称DIP)是软件设计中的一个重要原则,它在面向对象编程领域具有深远的影响。这一原则的核心思想是“高层模块不应该依赖于低层模块,两者都应该依赖于抽象”。简单...

    依赖倒转原则

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

    依赖倒置原则Demo

    依赖倒置原则(Dependency Inversion Principle,DIP)是面向对象设计的基本原则之一,由罗伯特·C·马丁(Robert C. Martin)提出。这个原则指出,高层次的模块不应该依赖于低层次的模块,两者都应该依赖其抽象;...

    面向对象的设计的原则 电子版

    依赖倒转原则告诉我们,在软件设计中,高层模块和低层模块都应该依赖于抽象接口,而不是相互依赖。 5. 接口隔离原则(ISP):使用多个专门的接口,而不使用单一的总接口,即客户端不应该依赖那些它不需要的接口。...

    软件体系结构 设计原则

    3. **依赖倒转原则 (Dependency Inversion Principle, DIP)**:这一原则建议高层次的模块不应该依赖于低层次的模块,两者都应该依赖于抽象。在示例中,所有形状类(Circle、Rectangle、Triangle)都实现了Shape接口...

    六种设计原则

    本文将详细探讨六种核心的设计原则,它们分别是开闭原则(Open-Closed Principle, OCP)、里氏代换原则(Liskov Substitution Principle, LSP)、迪米特法则(Law of Demeter, LoD)、依赖倒转原则(Dependency ...

    java设计模式考试题.docx

    5. **依赖倒转原则**:依赖倒转原则(DIP)指出要依赖于抽象,不要依赖于具体实现,即针对接口编程,而不是针对实现编程(选D)。 6. **复用关系**:在设计模式中,优先考虑利用的是委托、继承和创建这三种复用关系...

    java\软件设计中的原则(GRASP)

    3. 依赖倒转原则(DIP):依赖倒转原则提倡依赖于抽象接口而非具体实现,这样可以更灵活地调整系统结构,降低对具体类的依赖。 这些原则和模式共同构成了软件设计的基础,通过遵循它们,我们可以创建出更健壮、易于...

    面向对象设计原则Java.ppt

    4. **依赖倒转原则 (Dependency Inversion Principle, DIP)**: 依赖倒转原则提倡高层次的模块不应依赖于低层次的模块,两者都应依赖于抽象。这样,系统可以通过调整抽象层来适应变化,而无需更改大量具体实现代码...

    面向对象设计原则和设计模式的概念

    #### 依赖倒转原则 (DIP) 依赖倒转原则强调了高层模块不应该依赖于低层模块,两者都应该依赖于抽象。抽象不应该依赖于细节,细节应该依赖于抽象。这通常通过接口或抽象类来实现。例如,如果有一个“图形绘制器”...

    面向对象设计原则Java概要.ppt

    依赖倒转原则  依赖倒转原则概述 依赖倒转原则(Dependency Inversion Principle, DIP)强调要依赖于抽象,而不是依赖于具体实现。这意味着高层次的模块不应该依赖于低层次的模块,两者都应该依赖于相同的抽象。 ...

    设计模式(23种)与设计原则(6种)

    3. **依赖倒转原则**(Dependency Inversion Principle, DIP):高层模块不应该依赖低层模块,两者都应该依赖其抽象。这意味着我们应该依赖接口或抽象类,而不是具体的实现。这有助于降低模块间的耦合度。 4. **...

    Java软件开发实战 Java基础与案例开发详解 7-4 软件的可维护与复用设计原则 共12页.pdf

    - 依赖倒转原则在实际中可能需要结合工厂模式等设计模式来实现。 #### 4. 接口分离原则 (Interface Segregation Principle, ISP) 接口分离原则指出,客户端不应该被迫依赖它不使用的方法。也就是说,接口应该足够...

    SQL语句优化2

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

    java软件设计模式期末总结

    3. **依赖倒转原则(DIP)**:高阶模块不应该依赖于低阶模块,两者都应该依赖于抽象。这使得代码更加灵活,因为具体的实现可以被替换而不影响高层模块。 4. **里氏替换原则(LSP)**:子类型必须能够替换掉它们的基...

    软件设计模式知识点

    4. 依赖倒转原则(DIP):高层模块不应该依赖于低层模块,二者都应该依赖于抽象。 5. 迪米特法则(LOD):一个对象应当对其他对象有尽可能少的了解。 6. 接口隔离原则(ISP):应当为客户端提供尽可能小的单独的接口...

Global site tag (gtag.js) - Google Analytics