1.什么是依赖倒转原则
要依赖于抽象,不要依赖于具体。
简单的说就是要求对抽象进行编程,不要对实现进行编程,这样就降低了客户与实现模块间的耦合。
要求客户端依赖于抽象耦合(耦合发生在一个具体类和一个抽象类[或者是接口]之间)(关键)
2..为什么要使用依赖倒转原则?
传统的过程性代码系统的设计办法倾向于使高层模块依赖于低层次的模块,抽象层依赖于实现层。DIP就是要把这个错误的依赖关系倒转过来。
抽象层:是应用系统的业务逻辑和宏观的,对整个系统起到重要的战略性的决定的,是必然性的体现。
具体层:是一些次要的与实现有关的算法和逻辑,是战术性的决定,带有相当大的偶然性。
具体层次的代码会经常的变动,不能避免的出现错误。如果是抽象层依赖于具体层的话,那么具体层的变化就会立即影响到抽象层的宏观业务逻辑,导致微观决定宏观,战术决定战略,微观决定宏观的荒唐事情出现。
3.复用与可维护性的倒转
传统模式的复用和维护:具体层次的复用,比如算法,数据结构,函数库的复用,会导致依赖于每一行代码。
DIP模式的复用和维护:抽象层业务逻辑的复用,是做决定的地方,较为稳定。
实现:抽象层次的模块要相对于独立月具体层次的模块的话,那么抽象的模块的复用就相对容易了。
4.如何做到DIP
针对接口编程而不是针对实现编程:应当使用Java接口和Java抽象类进行变量的类型声明,参量的类型声明,方法的返还类型声明,以及数据类型的转换等。要保证做到这一点,一个具体Java类应当只实现Java接口和抽象Java类中声明过的方法,而不应到给出多余的方法。
以抽象方式耦合是依赖倒转原则的关键。由于一个抽象耦合关系总要涉及具体类从抽象类基础,并且需要保证在任何应用到基类的地方都可以换成其子类,因此,里氏代换原则是依赖倒转原则的基础。
涉及到的设计模式:
工厂模式,模版模式,迭代子模式
相关推荐
依赖倒转原则(Dependency Inversion Principle,DIP)是面向对象设计的基本原则之一,它在软件工程中扮演着至关重要的角色。这个原则主要是为了降低模块之间的耦合度,提高系统的可扩展性和可维护性。在C#编程语言...
读书笔记:java 23种设计模式 开闭原则 依赖倒转原则 迪米特法则 设计模式思想 Java入门demo
在DIP的应用中,我们经常看到设计模式如工厂模式、策略模式、观察者模式等,它们都是依赖倒转原则的具体实践。这些模式有助于创建松耦合、高内聚的系统,从而提高软件的可维护性和可扩展性。 总结起来,依赖倒转...
### 设计模式六大原则详解 #### 一、开闭原则(Open-Closed Principle) **含义:** 开闭原则强调的是“对扩展开放,对修改关闭”。这意味着系统的设计应该是灵活的,能够轻松地添加新的功能而不需要修改现有代码...
- 依赖倒转原则 - 迪米特法原则 - 接口隔离原则 5. 设计模式的实现方式: - 使用继承来实现工厂模式 - 使用组合来实现抽象工厂模式 - 使用代理模式来控制对象的访问 - 使用适配器模式来封装对象并提供不同的...
设计模式原则:单一职责原则,里氏替换,依赖倒转,接口隔离,开放关闭等等。
依赖倒置原则的包含如下的三层含义: 1. 高层模块不应该依赖低层模块,两者都应该依赖其抽象 2. 抽象不应该依赖细节 3. 细节应该依赖抽象 就是面向接口编程,采用依赖倒置原则可以减少类间的耦合性...
3、依赖倒转原则(Dependence Inversion Principle) 这个是开闭原则的基础,具体内容:真对接口编程,依赖于抽象而不依赖于具体。 4、接口隔离原则(Interface Segregation Principle) 这个原则的意思是:使用...
依赖倒转原则(Dependency Inversion Principle,DIP)强调依赖于抽象而不是具体的实现。这样做可以使系统更加灵活,因为当我们需要更改实现时,只需要调整抽象层的定义,而不会影响到依赖它的代码。 合成/聚合原则...
Java 设计模式五大原则是软件设计中非常重要的原则,它们是:开-闭原则、里氏代换原则、依赖倒转原则、接口隔离原则和迪米特法则。这些原则都是软件设计的基石,它们指导我们如何设计出更加灵活、可维护、可扩展的...
依赖倒转原则(Dependency Inversion Principle, DIP)建议依赖于抽象而不是具体实现。这有助于降低模块间的耦合度,提高系统的灵活性。 #### 1.2.5 面向对象设计原则之接口隔离原则 接口隔离原则(Interface ...
以设计模式为例,依赖倒置原则在很多模式中都有体现,如工厂模式、策略模式、观察者模式等。在工厂模式中,我们定义一个工厂接口,具体的生产逻辑由各个具体的工厂类实现,这样调用者只需要依赖工厂接口,无需关心...
3. **依赖倒转原则**(Dependency Inversion Principle, DIP):高层模块不应该依赖低层模块,两者都应该依赖其抽象。这意味着我们应该依赖接口或抽象类,而不是具体的实现。这有助于降低模块间的耦合度。 4. **...
6. **依赖倒转原则(DIP)**:DIP指出高层次的模块不应该依赖于低层次的模块,两者都应该依赖于抽象。这一原则鼓励使用接口或抽象类来定义依赖关系,从而提高系统的灵活性和可测试性。 7. **装饰者模式**:装饰者...
依赖倒转原则(Dependency Inversion Principle,简称DIP)是软件设计中的一个重要原则,它在面向对象编程领域具有深远的影响。这一原则的核心思想是“高层模块不应该依赖于低层模块,两者都应该依赖于抽象”。简单...
1) 内容包括: 设计模式七大原则(单一职责、接口隔离、依赖倒转、里氏替换、开闭原则、迪米特法则、合成复用)、UML类图(类的依赖、泛化和实现、类的关联、聚合和组合) 23种设计模式包括:创建型模式:单例模式(8种...
面向对象的六大基本原则包括开闭原则、里氏替换原则、合成聚合原则、依赖倒转原则、迪米特法则和单一职责原则。这些原则有助于指导开发者编写高质量的面向对象代码。 ### 22. 方法和数据的集中 在存在继承关系的...
设计模式分为三大类:创建型模式(如工厂模式、单例模式)、结构型模式(如适配器模式、装饰者模式)和行为型模式(如策略模式、观察者模式)。每种模式都有其特定的应用场景和优点,合理地运用设计模式可以显著提升...
设计模式六大原则是软件开发中不可或缺的指导原则,它们旨在提高代码的可维护性、可扩展性和可重用性。以下是对这六个原则的详细解释: 1、单一职责原则(SRP) 单一职责原则指出,一个类或模块应只负责一项功能。...