设计原则-------依赖倒转原则(DIP)
依赖倒转原则:抽象不应该依赖细节,细节应该依赖抽象。
通俗地说,就是要针对接口编程,而不要对具体实现编程。比如无论主板、CPU、内存、硬盘都是在针对接口设计的,如果针对实现来设计,内存就要对应到具体的品牌的主板,就会出现换内存需要把主板也换掉的尴尬。
1. 高层模块不应该以来底层模块。两个都应该以来抽象。
2. 抽象不应该以来细节。细节应该以来抽象。
为什么要叫倒转?
面向过程的开发时,为了使得常用代码可以复用,一般都会把这些常用代码写成许许多多函数的程序库,这样我们在做新项目时,去调用这些底层的函数就可以了。比如我们做的项目大多要访问数据库,所以我们就把访问数据库的代码写成了函数,每次做新项目时就去调用这些函数。这也就叫做高层模块以来底层模块。
我们要做新项目时,发现业务逻辑的高层模块都是一样的,但客户却希望使用不同的数据库或存储信息方式,这时就出现麻烦了。我们希望能再次利用这些高层模块,但高层模块都是与底层的访问数据库绑定在一起的,没办法复用这些高层模块,这就非常糟糕了。
就像刚才说的,PC里如果CPU、内存、硬盘都需要以来具体的主板,主板一怀,所有的部件就都没用了,这显然不合理。反过来,如果内存坏了,也不应该造成其他部件不能用才对。而如果不管高层模块还是底层模块,它们都依赖于抽象,具体一点就是接口或抽象类,只要接口是稳定的,那么任何一个的更改都不用担心其他收受到影响,这就使得无论高层模块还是底层模块都可以很容易地被复用。
为什么依赖了抽象的接口或抽象类,就不怕更改呢?里氏代换原则给我们解释了这一点。
分享到:
相关推荐
依赖倒转原则(Dependency Inversion Principle,DIP)是面向对象设计的基本原则之一,它在软件工程中扮演着至关重要的角色。这个原则主要是为了降低模块之间的耦合度,提高系统的可扩展性和可维护性。在C#编程语言...
依赖倒转原则(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
依赖倒置原则(Dependency Inversion Principle,DIP)是面向对象设计的基本原则之一,由罗伯特·C·马丁(Robert C. Martin)提出。这个原则指出,高层次的模块不应该依赖于低层次的模块,两者都应该依赖其抽象;...
- 依赖倒转原则 - 迪米特法原则 - 接口隔离原则 5. 设计模式的实现方式: - 使用继承来实现工厂模式 - 使用组合来实现抽象工厂模式 - 使用代理模式来控制对象的访问 - 使用适配器模式来封装对象并提供不同的...
依赖倒转原则(Dependency Inversion Principle,简称DIP)是软件设计中的一个重要原则,它在面向对象编程领域具有深远的影响。这一原则的核心思想是“高层模块不应该依赖于低层模块,两者都应该依赖于抽象”。简单...
依赖倒置原则的包含如下的三层含义: 1. 高层模块不应该依赖低层模块,两者都应该依赖其抽象 2. 抽象不应该依赖细节 3. 细节应该依赖抽象 就是面向接口编程,采用依赖倒置原则可以减少类间的耦合性...
在面对新的需求,如数据转换时,依赖倒转原则可以帮助轻松添加新的数据源或文件格式,而无需修改现有代码。 总结来说,设计模式在软件系统设计中是连接需求、规约、架构和实现的关键桥梁。它们提供了一种标准化的...
依赖倒转原则主张高层模块不应该依赖低层模块,两者都应该依赖其抽象;抽象不应该依赖细节,细节应该依赖抽象。这意味着我们应该优先考虑使用合成或聚合而不是继承。 **具体方法:** - **尽量使用合成/聚合:** ...
1面向对象6大原则--单一职责原则 2面向对象6大原则--里氏代换原则 3面向对象6大原则--开闭原则 4面向对象6大原则--依赖倒转原则 5面向对象6大原则--合成复用原则 6面向对象6大原则--接口隔离原则
例如:随着计算机的不断发展,程序学习这门技术也越来越重要,很多人都开启了...面向对象设计原则一共有七个:开闭原则、里氏替换原则、依赖倒转原则、单一职责原则、接口隔离原则、组合/聚合复用原则、迪米特法则。
3. **依赖倒转原则(Dependency Inversion Principle, DIP)**:高层模块不应该依赖于低层模块,两者都应该依赖于抽象。这有助于降低模块间的耦合度。 4. **接口隔离原则(Interface Segregation Principle, ISP)*...
依赖倒转原则的目的是为了减少系统的耦合度,提高系统的灵活性和可维护性。 三、单一职责原则 单一职责原则定义为:一个类应该只有一个理由去改变。单一职责原则的目的是为了提高类的内聚性和可维护性。 四、接口...
对面向对象设计原则的总结,设计模式:“开-闭”原则,里氏代换原则、依赖倒转原则、合成/聚合复用原则、迪米特法则、接口隔离原则
软件体系结构七大设计原则是构建高质量软件系统的基础,它们分别是:单一职责原则、开闭原则、里氏代换原则、依赖倒转原则、接口隔离原则、迪米特法则和合成聚合原则。这些原则旨在提高软件的可维护性、可扩展性和可...
3、依赖倒转原则(Dependence Inversion Principle) 这个是开闭原则的基础,具体内容:真对接口编程,依赖于抽象而不依赖于具体。 4、接口隔离原则(Interface Segregation Principle) 这个原则的意思是:使用...
- 依赖倒转原则在实际中可能需要结合工厂模式等设计模式来实现。 #### 4. 接口分离原则 (Interface Segregation Principle, ISP) 接口分离原则指出,客户端不应该被迫依赖它不使用的方法。也就是说,接口应该足够...
面向对象设计原则概述 单一职责原则 开闭原则 里氏代换原则 依赖倒转原则 接口隔离原则 合成复用原则 迪米特法则
3.1.5 依赖倒转原则 3.1.6 迪米特法则 3.1.7 合成复用原则 3.2 组件层 3.2.1 复用、发布等同原则 3.2.2 共同闭包原则 3.2.3 共同复用原则 3.2.4 无依赖环原则 3.2.5 稳定依赖原则 3.2.6 稳定抽象原则 3.3...