`

OO设计原则----依赖倒置原则(DIP)

阅读更多
这是一个类与类之间调用规则,术语上解释就是对于组合之间的规范。
DIP的主要思想是如果一个类的一个成员或参数为一个具体类型,那么这个类就依赖于那个具体类型。
如果在一个继承结构中,上层类中的一个成员或参数为一个下层类型,那么这个继承结构就是高层依赖于底层了。
个人理解:就是尽量面向接口或抽象编程。把具体类型变成一个抽象的标示,什么改变的时候有问题?如果有问题那么就是抽象的地方具体类无法进行代替了,可以参照LSP规则的解决办法。

另外,需要分清具体的不变类是哪些,对于不变类可以不使用这个规则。

关键点:
分清系统中的不变类和变化类。把变化类作抽象,进行引用(业务分析/经验很重要呀)。
分享到:
评论

相关推荐

    OO设计原则 -- OO设计的 DIP依赖倒置原则

    ### OO设计原则 -- OO设计的 DIP依赖倒置原则 #### 概述 在软件工程领域,特别是面向对象设计中,依赖倒置原则(Dependency Inversion Principle, DIP)是六大设计原则之一,由著名软件架构师Robert C. Martin提出...

    java oo 设计原则

    这些原则包括单一职责原则(SRP)、不要重复代码原则(DRY)、开闭原则(OCP)、里氏替换原则(LSP)、依赖倒置原则(DIP)以及接口隔离原则(ISP)。下面将详细阐述这些原则及其重要性。 1. 单一职责原则(Single ...

    面向对象编程,OO设计的五大原则

    LSP)、依赖倒置原则(Dependency Inversion Principle,简称 DIP)以及接口隔离原则(Interface Segregation Principle,简称 ISP)。 ### 单一职责原则(SRP) **定义**:一个类应该只有一个引起它变化的原因。...

    OO设计五个原则.pdf

    2. **依赖倒置原则**(Dependency Inversion Principle,简称DIP):高层次的模块不应该依赖于低层次的模块,二者都应该依赖于抽象;抽象不应该依赖于细节,细节应该依赖于抽象。这样可以降低模块间的耦合度,使得...

    OO设计根本的指导原则

    #### 依赖倒置原则(Dependency Inversion Principle, DIP) 依赖倒置原则要求高层模块不应该依赖于低层模块,二者都应该依赖于抽象;抽象不应该依赖于细节,细节应该依赖于抽象。具体来说: 1. **提高模块间的...

    面向对象设计原则解析

    5. **依赖倒置原则(Dependency Inversion Principle, DIP)** 高层次的模块不应该依赖于低层次的模块,两者都应该依赖于抽象。抽象不应该依赖于具体实现,而具体实现应该依赖于抽象。这样可以降低模块间的耦合,...

    面向对象的设计原则——类设计原则

    依赖倒置原则 (DIP) 依赖倒置原则强调依赖关系应该从高层模块流向低层模块,而不是相反。具体而言,高层模块不应该依赖于低层模块的具体实现,而应该依赖于抽象;低层模块则应该依赖于高层模块提供的抽象接口。...

    剖析设计模式与设计原则

    5. 依赖倒置原则(DIP):依赖于抽象而不是具体实现。这样可以降低模块间的耦合,提高系统的可测试性和可扩展性。 “OO Principles Explained译文.pdf”可能详细阐述了这些原则,并通过实例展示了如何在实践中应用...

    面向对象的设计原则 doc

    #### 二、依赖倒置原则(Dependency Inversion Principle, DIP) **定义**:依赖倒置原则强调依赖于抽象而非具体实现。简单来说,高层模块不应该依赖于低层模块,二者都应该依赖于抽象;抽象不应该依赖于细节,细节...

    《设计模式--基于C#的工程化实现及扩展》.(王翔).rar.rar

    此外,书中可能还会涉及面向对象设计原则,如单一职责原则(SRP)、开闭原则(OCP)、里氏替换原则(LSP)、依赖倒置原则(DIP)和接口隔离原则(ISP),这些都是设计模式背后的重要理论基础。 总的来说,《设计模式--基于C#...

    软件架构设计的6大原则.pdf

    6. 依赖倒置原则(Dependence Inversion Principle - DIP) 依赖倒置原则是指高层模块不应该依赖于低层模块,它们应该依赖于抽象。这个原则强调了抽象的重要性和面向接口编程的必要性,防止类之间的紧耦合。应用时...

    C++OOAD的设计原则

    DIP:依赖倒置原则 (The Dependency Inversion Principle) 依赖倒置原则同样是 Robert C. Martin 提出的,它强调高层模块不应该依赖于低层模块,二者都应该依赖于抽象;抽象不应该依赖于细节,细节应该依赖于抽象...

    oo design principles

    4. 依赖倒置原则(Dependency Inversion Principle, DIP) DIP强调高层模块不应该依赖于低层模块,两者都应该依赖于抽象。具体来说,依赖于接口而非实现。这样,当底层实现发生变动时,只需要修改相应的接口实现,...

    2020-review-3-oo.pptx

    - **依赖倒置原则**(Dependency Inversion Principle, DIP):高层模块不应该依赖低层模块,两者都应该依赖其抽象。 - **接口隔离原则**(Interface Segregation Principle, ISP):客户端不应该被迫依赖它不使用的...

    第七讲-面向对象程序的需求分析与设计原则v4.01

    3. **依赖倒置原则**(DIP):依赖于抽象,而不是具体实现。这促进了模块间的解耦。 4. **接口隔离原则**(ISP):不要强迫客户端依赖它们不用的方法,提供针对性的接口。 5. **迪米特法则**(Law of Demeter):...

    面向对象系统设计师之路

    2. 面向对象设计原则:如单一职责原则(SRP)、开闭原则(OCP)、里氏替换原则(LSP)、依赖倒置原则(DIP)和接口隔离原则(ISP)。 3. 设计模式的应用:介绍常见的设计模式,解释其工作原理和适用场景。 4. UML...

    设计模式入门指导

    - 依赖倒置原则(Dependency Inversion Principle, DIP):高层模块不应该依赖于低层模块,两者都应该依赖于抽象。 设计模式是软件设计中解决特定问题的一套经验化、经过验证的最佳实践。它们不是直接用来编写代码...

    软件工程概述及设计模式ppt课件.ppt

    4. 依赖倒置原则(DIP):高层模块不应该依赖低层模块,而应该依赖抽象。 5. 接口隔离原则(ISP):客户端不应该依赖它不需要的接口。 6. 组合/聚合复用原则(CARP):尽量使用组合/聚合,而不是继承。 面向对象...

    实战OO 部署与实施

    4. **依赖倒置原则**(Dependency Inversion Principle, DIP):高层模块不应该依赖于低层模块,二者都应该依赖于抽象。 5. **接口隔离原则**(Interface Segregation Principle, ISP):客户端不应该被强制依赖它不...

    Head First Object-Oriented Design and Analysis

    4. **依赖倒置原则**(Dependency Inversion Principle, DIP):高层模块不应该依赖低层模块,二者都应该依赖于抽象;抽象不应该依赖于细节,细节应该依赖于抽象。 5. **接口隔离原则**(Interface Segregation ...

Global site tag (gtag.js) - Google Analytics