`

设计原则-------依赖倒转原则

 
阅读更多

设计原则-------依赖倒转原则(DIP)

依赖倒转原则:抽象不应该依赖细节,细节应该依赖抽象。

 

通俗地说,就是要针对接口编程,而不要对具体实现编程。比如无论主板、CPU、内存、硬盘都是在针对接口设计的,如果针对实现来设计,内存就要对应到具体的品牌的主板,就会出现换内存需要把主板也换掉的尴尬。
   
1. 高层模块不应该以来底层模块。两个都应该以来抽象。
2. 抽象不应该以来细节。细节应该以来抽象。

为什么要叫倒转?
     面向过程的开发时,为了使得常用代码可以复用,一般都会把这些常用代码写成许许多多函数的程序库,这样我们在做新项目时,去调用这些底层的函数就可以了。比如我们做的项目大多要访问数据库,所以我们就把访问数据库的代码写成了函数,每次做新项目时就去调用这些函数。这也就叫做高层模块以来底层模块。
    我们要做新项目时,发现业务逻辑的高层模块都是一样的,但客户却希望使用不同的数据库或存储信息方式,这时就出现麻烦了。我们希望能再次利用这些高层模块,但高层模块都是与底层的访问数据库绑定在一起的,没办法复用这些高层模块,这就非常糟糕了。 
    就像刚才说的,PC里如果CPU、内存、硬盘都需要以来具体的主板,主板一怀,所有的部件就都没用了,这显然不合理。反过来,如果内存坏了,也不应该造成其他部件不能用才对。而如果不管高层模块还是底层模块,它们都依赖于抽象,具体一点就是接口或抽象类,只要接口是稳定的,那么任何一个的更改都不用担心其他收受到影响,这就使得无论高层模块还是底层模块都可以很容易地被复用。
    为什么依赖了抽象的接口或抽象类,就不怕更改呢?里氏代换原则给我们解释了这一点。
分享到:
评论

相关推荐

    设计模式之依赖倒转原则

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

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

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

    依赖倒转原则

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

    读书笔记:java 23种设计模式 开闭原则 依赖倒转原则 迪米特法则 设计模式思想 Java入门demo.zip

    读书笔记:java 23种设计模式 开闭原则 依赖倒转原则 迪米特法则 设计模式思想 Java入门demo

    依赖倒置原则Demo

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

    设计模式复习题.doc

    - 依赖倒转原则 - 迪米特法原则 - 接口隔离原则 5. 设计模式的实现方式: - 使用继承来实现工厂模式 - 使用组合来实现抽象工厂模式 - 使用代理模式来控制对象的访问 - 使用适配器模式来封装对象并提供不同的...

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

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

    设计模式(五)之依赖倒转原则.zip

    依赖倒置原则的包含如下的三层含义: 1. 高层模块不应该依赖低层模块,两者都应该依赖其抽象 2. 抽象不应该依赖细节 3. 细节应该依赖抽象 就是面向接口编程,采用依赖倒置原则可以减少类间的耦合性...

    软件系统设计-设计模式 - 整体1

    在面对新的需求,如数据转换时,依赖倒转原则可以帮助轻松添加新的数据源或文件格式,而无需修改现有代码。 总结来说,设计模式在软件系统设计中是连接需求、规约、架构和实现的关键桥梁。它们提供了一种标准化的...

    设计模式六大原则

    依赖倒转原则主张高层模块不应该依赖低层模块,两者都应该依赖其抽象;抽象不应该依赖细节,细节应该依赖抽象。这意味着我们应该优先考虑使用合成或聚合而不是继承。 **具体方法:** - **尽量使用合成/聚合:** ...

    面向对象原则.zip

    1面向对象6大原则--单一职责原则 2面向对象6大原则--里氏代换原则 3面向对象6大原则--开闭原则 4面向对象6大原则--依赖倒转原则 5面向对象6大原则--合成复用原则 6面向对象6大原则--接口隔离原则

    Java设计模式-面向对象七大设计原则

    例如:随着计算机的不断发展,程序学习这门技术也越来越重要,很多人都开启了...面向对象设计原则一共有七个:开闭原则、里氏替换原则、依赖倒转原则、单一职责原则、接口隔离原则、组合/聚合复用原则、迪米特法则。

    软件设计原则的PPT,设计软件原则的PPT

    3. **依赖倒转原则(Dependency Inversion Principle, DIP)**:高层模块不应该依赖于低层模块,两者都应该依赖于抽象。这有助于降低模块间的耦合度。 4. **接口隔离原则(Interface Segregation Principle, ISP)*...

    程序员必备的七大面向对象设计原则

    依赖倒转原则的目的是为了减少系统的耦合度,提高系统的灵活性和可维护性。 三、单一职责原则 单一职责原则定义为:一个类应该只有一个理由去改变。单一职责原则的目的是为了提高类的内聚性和可维护性。 四、接口...

    对面向对象设计原则的总结

    对面向对象设计原则的总结,设计模式:“开-闭”原则,里氏代换原则、依赖倒转原则、合成/聚合复用原则、迪米特法则、接口隔离原则

    软件体系结构七大设计原则

    软件体系结构七大设计原则是构建高质量软件系统的基础,它们分别是:单一职责原则、开闭原则、里氏代换原则、依赖倒转原则、接口隔离原则、迪米特法则和合成聚合原则。这些原则旨在提高软件的可维护性、可扩展性和可...

    24种设计模式介绍与6大设计原则

    3、依赖倒转原则(Dependence Inversion Principle) 这个是开闭原则的基础,具体内容:真对接口编程,依赖于抽象而不依赖于具体。 4、接口隔离原则(Interface Segregation Principle) 这个原则的意思是:使用...

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

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

    面向对象设计原则

    面向对象设计原则概述 单一职责原则 开闭原则 里氏代换原则 依赖倒转原则 接口隔离原则 合成复用原则 迪米特法则

    面向对象七大原则

    面向对象编程的七大原则是指在面向对象设计中所遵循的七个基本原则,它们是:开闭原则、依赖倒转原则、单一职责原则、接口隔离原则、迪米特法则、里氏替换原则和组合优于继承原则。 1. 开闭原则(Open-Closed ...

Global site tag (gtag.js) - Google Analytics