依赖倒置的“倒置”是否需要改改

  很多博客或者书上都会提到依赖倒置,给出的示例呢也都是提取接口来隔离两个模块。那么为啥叫倒置呢?然后多半是这么解释的:以前设计软件能都是从高层模块调用底层模块,这样呢高层模块就严重依赖于底层模块了,所以要倒过来。至于怎么倒过来就是前面说的就是要依赖抽象(接口)。但是这样哪里能看出倒置的意思呢?我想了下觉得应该这样解释:

  纵然高层不应该依赖底层,那么倒置的话,是说底层依赖高层?而事实上我们要做的是要通过接口来互相隔离。高层业务需要复用,底层模块的也需要复用。
  所谓“倒置”个人觉得并非真正代码层面真正的依赖关系,而是实现逻辑上,底层的功能是根据高层的需求来定的。

  所以我觉得依赖倒置改成依赖抽象更符合这条原则。

时间: 2024-10-10 08:03:49

依赖倒置的“倒置”是否需要改改的相关文章

敏捷软件开发:原则、模式与实践——第11章 DIP:依赖倒置原则

第11章 DIP:依赖倒置原则 DIP:依赖倒置原则: a.高层模块不应该依赖于低层模块.二者都应该依赖于抽象. b.抽象不应该依赖于细节.细节应该依赖于抽象. 11.1 层次化 下图展示了一个简单的层次化方案: 高层的Policy层使用了低层的Mechanism层,而Mechanism层又使用了更细节的Utility层.它存在一个隐伏的错误特征,那就是:Policy层对于其下一直到Utility层的改动都是敏感的.依赖关系是传递的. 下图展示了一个更为合适的模型: 每个较高层次都为它所需要的服

ASP.NET 设计模式中依赖倒置原则

依赖倒置原则 A.高层次的模块不应该依赖于低层次的模块,他们都应该依赖于抽象. B.抽象不应该依赖于具体,具体应该依赖于抽象. 依赖倒置原则 A.高层次的模块不应该依赖于低层次的模块,他们都应该依赖于抽象. B.抽象不应该依赖于具体,具体应该依赖于抽象. 目录 1概述 2意图 3代码实现 4结构图 1概述编辑 所谓依赖倒置原则(Dependence Inversion Principle)就是要依赖于抽象,不要依赖于具体.简单的说就是要求对抽象进行编程,不要对实现进行编程,这样就降低了客户与实现

敏捷软件开发 – DIP 依赖倒置原则

DIP 依赖倒置原则 高层模块不应该依赖于低层模块.二者都应该依赖于抽象. 抽象不应该依赖于细节.细节应该依赖于抽象. 依赖于低层模块的高层模块意味着什么?正是高层模块包含了应用程序中重要的策略选择和业务模型.这些高层模块使得其所在的应用程序区别于其他.然而,如果这些高层模块依赖于低层模块,那么对于低层模块的改动会直接影响到高层模块,从而迫使它们依次做出改动.如果高层模块独立于低层模块,那么高层模块就可以非常容易地被重用.该原则是框架设计的核心原则. 层次化 糟糕的层次关系. 更为适合的模型.每

[敏捷设计]5.DIP依赖倒置原则

一.定义 1.高层模块不应该依赖低层模块,二者都应该依赖抽象 2.抽象不应该依赖于细节.细节应该依赖于抽象 二.层次化 1.简单介绍 结构良好的面向对象架构都具有清晰的层次定义,每个层次通过一个定义良好的.受控的接口向外提供了一组内聚的服务. 对于这个陈述的简单理解可能会致使设计者设计出类似下图的结构. 图中,高层的Policy层使用了低层的Mechanism层,而Mechanism层又使用了更细节的Utility层.这样,Policy层对下面的Utility层的改动都是敏感的. 这种依赖关系是

依赖倒置原则(DIP)

1. 定义 (1)高层模块不应依赖于低层模块,两者都应该依赖于抽象.(2)抽象不应该依赖于细节,细节应该依赖于抽象. 为什么是“倒置”这个词? 这是由于许多传统的软件开发方法,比如结构化分析和设计,总是倾向于创建一些高层依赖于低层模块.策略依赖于细节的软件结构.实际上这些方法的目的之一就是要定义程序层次结构,该层次结构描述了高层模块怎样调用低层模块.一个设计良好的面向对象的程序,其依赖于程序结构相对于传统的过程式方法设计的通常结构而言就是被“倒置”了. 高层模块包含了一个应用程序中的重要的策略选

MindManager 15中文版思维导图如何建立依赖关系

依赖关系指的是一个任务与另一个任务或者多个任务建立某种关系.建立依赖关系后,明确分支之间的关联,便于进行项目管理与跟进.本文将主讲如何在MindManager 15中文版思维导图中建立依赖关系. 依赖关系包括以下几种: 1. 上方结束后下方才能开始 2. 上方开始前下方不能结束 3. 上方开始后下方才能开始 4. 下方不能早于上方结束 建立依赖关系的步骤: 步骤一 制作好导图. 步骤二 选中中心主题,点击任务中的显示任务面板,任务面板显示在导图的右边. 步骤三 在任务面板中勾选向上滚动的任务信息

Java程序员应该了解的10个面向对象设计原则

面向对象设计原则: 是OOPS(Object-Oriented Programming System,面向对象的程序设计系统)编程的核心,但大多数Java程序员追逐像Singleton.Decorator.Observer这样的设计模式,而不重视面向对象的分析和设计.甚至还有经验丰富的Java程序员没有听说过OOPS和SOLID设计原则,他们根本不知道设计原则的好处,也不知道如何依照这些原则来进行编程. 众所周知,Java编程最基本的原则就是要追求高内聚和低耦合的解决方案和代码模块设计.查看Ap

java设计原则:16种原则

一   类的设计原则   1 依赖倒置原则-Dependency Inversion Principle (DIP) 2 里氏替换原则-Liskov Substitution Principle (LSP) 3 接口分隔原则-Interface Segregation Principle (ISP) 4 单一职责原则-Single Responsibility Principle (SRP) 5 开闭原则-The Open-Closed Principle (OCP) 二  包的设计原则   6

面向对象设计的11个原则

单一职责原则(The Single Responsibility Principle,简称SRP) 开放-封闭原则(The Open-Close Principle,简称OCP) Liskov替换原则(The Liskov Substitution,简称LSP) 依赖倒置原则(The Dependency Inversion Principle,简称DIP) 接口隔离原则(The Interface Segregation Principle,简称ISP) 重用发布等价原则(The Reuse-