`
xiaotian_ls
  • 浏览: 308144 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

依赖倒转原则(DIP)

阅读更多
依赖倒转原则讲的是:要依赖于抽象,不要依赖于具体。
依赖倒转原则的一种表述是:细节应当依赖与抽象,抽象不应当依赖于细节。
            另一种描述是:要针对接口编程,不要针对实现编程。意思就是应当使用接口和抽象类而不是具体类进行变量的类型声明、参数的类型声明、方法的返回类型声明以及数据类型的转换等。要保证这一点,一个具体java类应当只实现java接口和抽象java类中声明过的方法,而不应当给出多余的方法。
java接口与java抽象类的区别:
1.java抽象类可以提供某些方法的部分实现,而java接口不可以。
2.一个抽象类的实现只能由这个抽象类的子类给出,一个类最多只能从一个超类继承。任何一个实现了一个java接口所规定的方法的类都可以具有这个接口的类型,一个类可以实现任意多个java接口。
3.从代码重构的角度来说,使用重构接口比重构成抽象类要容易多。
4.java接口是定义混合类型(Mixin Type)的理想工具。所谓混合类型,就是一个类的主类型之外的次要类型。
缺省适配模式
声明类型的工作仍然是由java接口承担的,但是同时给出的还有一个java抽象类,为这个接口给出一个缺省实现。其他同属于这个抽象类型的具体类可以选择实现这个java接口,也可以选择继承自这个抽象类。
依赖倒转原则假定所有的具体类都是会变化的,这也不总是正确的。有一些具体类可能是想当稳定的、不会发生变化的,客户端可以直接依赖于这些具体类型,而不必为此声明一个抽象类型。
分享到:
评论

相关推荐

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

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

    设计模式之依赖倒转原则

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

    依赖倒转原则

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

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

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

    依赖倒置原则Demo

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

    java 设计模式与Jar库

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

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

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

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

    4. 依赖倒转原则(DIP):高层模块不应该依赖于低层模块,两者都应该依赖于抽象接口。依赖倒转原则告诉我们,在软件设计中,高层模块和低层模块都应该依赖于抽象接口,而不是相互依赖。 5. 接口隔离原则(ISP):...

    SQL语句优化2

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

    六种设计原则

    4. 依赖倒转原则(DIP): 依赖倒转原则强调高层次的模块不应该依赖于低层次的模块,它们都应该依赖于抽象。具体实现上,这意味着我们应该依赖于接口而不是具体的实现。例如,使用接口作为参数传递,或者让类依赖于...

    软件工程阶段性报告原则

    4. 依赖倒转原则(Dependency Inversion Principle, DIP) 依赖倒转原则主张高层模块依赖抽象,而不是依赖具体实现。具体来说,应该依赖于接口或抽象类,而不是依赖于具体类。例如,数据转换模块(如XMLTransformer...

    01 设计模式1

    设计原则是指导良好软件设计的基本准则,包括单一职责原则(SRP)、里氏代换原则(LSP)、依赖倒转原则(DIP)、接口隔离原则(ISP)、合成/聚合复用原则(CARP)和迪米特法则(Least Knowledge Principle,LKP)。...

    面向对象设计原则Java.ppt

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

    软件体系结构 设计原则

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

    设计模式六大原则 .docx

    3、依赖倒转原则(DIP) 依赖倒转原则提倡依赖于抽象而非具体实现。这意味着应该编写基于接口或抽象类的代码,而不是直接依赖于具体的实现类。这样做可以提高代码的灵活性,使得更换实现变得更简单。例如,使用工厂...

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

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

    java设计模式考试题.docx

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

    设计模式六大原则详解 经典

    依赖倒转原则(Dependency Inversion Principle,DIP)强调依赖于抽象而不是具体的实现。这样做可以使系统更加灵活,因为当我们需要更改实现时,只需要调整抽象层的定义,而不会影响到依赖它的代码。 合成/聚合原则...

Global site tag (gtag.js) - Google Analytics