面象对象设计6大原则之五:依赖倒置原则

依赖倒置原则(DIP),The Dependency Inversion Principle

定义

1、高层模块不应该依赖低层模块,两都应该依赖于抽象。

2、抽象不依赖于具体细节。

3、具体细节应该依赖于抽象。

抽象就是指接口或者抽象类,细节是指实现接口或者抽象类的具体实现类。

也就是说模块之间的依赖通过接口或抽象发生的,两个实现细节之间不能直接发生依赖,接口不能依赖实现,实现应该依赖抽象。

我们在进行分布式系统开发时,比如常用的dubbo框架,各个系统的连接都是通过接口发生的,只要依赖对方的接口就行了,而不需要知道对方的实现,更不可能依赖对方的实现类,在实际开发中只要其他模块的人把接口定义好就行了,先按接口提供的参数开发,等真正实现类都开发完了再一起联调。其他两条就更好理解了,依赖都只能依赖其抽象,而不是具体实现类。

所以,采用依赖倒置原则最大的特点是减少了类与类之间的耦合性,良好的支持各个模块并行开发互不影响,也提高了系统的可读性、可维护性和可扩展性。

在asp.net core中依赖倒置原则是用DI(依赖注入 Dependency inject)来实现的,并用容器来管理依赖的实现的生命周期。


参考链接:http://www.jianshu.com/p/9e14d7b8d6ba
时间: 2024-10-10 02:36:27

面象对象设计6大原则之五:依赖倒置原则的相关文章

6大设计原则之依赖倒置原则

依赖倒置原则: 包含三层含义: 高层模块不应该依赖低层模块,二者应该依赖抽象 抽象不应该依赖细节 细节应该依赖抽象 再精简些就是:其核心是面向接口编程 抽象:即抽象类和接口,抽象是对实现的约束,对依赖而言也是一种契约 细节:即具体的实现类,实现接口或继承抽象类所产生的类 依赖倒置就是通过抽象使各个类或模块间实现彼此独立,互不影响,实现模块间的松耦合. 依赖的三种实现方式: 构造函数注入 Setter依赖注入 接口注入 6大设计原则之依赖倒置原则

面向对象原则之一 依赖倒置原则

原文:面向对象原则之一 依赖倒置原则 前言 面向对象有人分为五大原则,分别为单一职责原则.开放封闭原则.依赖倒置原则.接口隔离原则.里氏替换原则. 也有人分为六大原则,分别为单一职责原则.开放封闭原则.依赖倒置原则.接口隔离原则.里氏替换原则.迪米特法则. 现在我们来介绍依赖倒置原则 依赖倒置原则 1)概念 a.高层模块不应该依赖于底层模块,两者应该依赖于其抽象. b.抽象不应该依赖具体实现,具体实现应该依赖抽象. 上面2点是依赖倒置原则的概念,也是核心.主要是说模块之间不要依赖具体实现,依赖接

设计模式六大原则之依赖倒置原则

一.概念: 依赖倒置原则英文缩写DIP(Dependence Inversion Principle)原始定义:High level modules should not depend upon low level modules. Both should depend upon abstractions. Abstractions should not depend upon details. Details should depend upon abstractions. 翻译过来就三层含义

设计原则之依赖倒置原则

定义:高层模块不应该依赖低层模块,二者都应该依赖其抽象:抽象不应该依赖细节:细节应该依赖抽象. 问题:类A直接依赖类B,假如要将类A改为依赖类C,则必须通过修改类A的代码来达成.这种场景下,类A一般是高层模块, 负责复杂的业务逻辑:类B和类C是低层模块,负责基本的原子操作:假如修改类A,会给程序带来不必要的风险. 解决:将类A修改为依赖接口I,类B和类C各自实现接口I,类A通过接口I间接与类B或者类C发生联系,则会大大降低修改类A的几率. 举个栗子:讲一个读者读书的故事... 1. 新建一个类B

Java的开发—面向对象的7大原则之依赖倒置原则(一)

一.定义: 依赖倒置原则(Dependecy Inversion Principle) 原文为: High level modules shouldnot depend upon low level modules.Both should depend upon abstractions.Abstractions should not depend upon details. Details should depend upon abstractions 三层定义: 1.高层模块不应该依赖底层模

深入理解JavaScript系列(22):S.O.L.I.D五大原则之依赖倒置原则DIP

前言 本章我们要讲解的是S.O.L.I.D五大原则JavaScript语言实现的第5篇,依赖倒置原则LSP(The Dependency Inversion Principle ). 英文原文:http://freshbrewedcode.com/derekgreer/2012/01/22/solid-javascript-the-dependency-inversion-principle/ 依赖倒置原则 依赖倒置原则的描述是: A. High-level modules should not

设计模式六大原则(三)——依赖倒置原则

依赖倒置原则 定义: 高层模块不应该依赖低层模块,二者都应该依赖其抽象:抽象不应该依赖细节:细节应该依赖抽象. 问题由来: 类A直接依赖类B,假如要将类B改为依赖类C,则必须通过修改类A的代码来达成.这种场景下,类A一般是高层模块,负责复杂的业务逻辑:类B和类C是低层模块,负责基本的原子操作:假如修改类A,会给程序带来不必要的风险. 解决方案: 将类A修改为依赖接口I,类B和类C各自实现接口I,类A通过接口I间接与类B或者类C发生联系,则会大大降低修改类A的几率. 依赖倒置原则基于这样一个事实:

面象对象设计6大原则之二:开放封闭原则

定义 一个软件的实体,包括类.方法.模块.应该对扩展开放,对修改关闭. 也就是说一个软件的实体应该通过扩展的方式来修改变化,而不是修改已有实体源代码. 开放封闭原则也是最基本需要遵守的原则,我们应该尽量保证系统的稳定性,我们在实现另外一个功能的时候不能修改之前已有的代码以免造成之前的功能出现BUG,带来不必要的麻烦,所以开放封闭原则正是引导我们去设计一个稳定.方便扩展的系统. 在实际应用中我们一般会有以下几种做法保证开放封闭原则: 1.抽象出一个接口或者抽象类,定义公共的方法,达到扩展的目的.实

面象对象设计原则简介

一.面向对象设计原则 单一职责原则(SRP) 开闭原则(OCP) 里氏替换原则(LSP) 依赖倒置原则(DIP) 接口隔离原则(LSP) 迪米特原则(LOP) 组合/聚合复用原则(CARP) 二.单一职责原则(SRP) 定义:系统中每一个类都应该中有一个职责 优点:高内聚.低耦合 高内聚是指一个类或者功能模块由相关性很强的代码组成,类或者模块很难拆分,它只负责一项任务 耦合指的是类之间或模块之间的相互联系,耦合度越高,说明联系越紧密,独立性越差,我们越难拆分相反,耦合度越低,联系越松散独立性越好