设计模式学习:依赖倒转原则

依赖:

DIP(DependenceInversion Principal),再说这个原则之前,我们先说说什么是依赖吧。这里的依赖关系我们理解为UML关系中的依赖。简单的说就是A use a B,那么A对B产生了依赖。具体请看下面的例子。

图一

从上面的途中我们可以看到,类A的方法func中用到了B,其实我们可以就这么理解,当A中用到了B,那么我们就说A对B产生了依赖,不过请你注意下,不是声明了就是,请看下面的,这种关系叫做零耦合关系,具体可以看下面依赖关系分类。

图2

依赖关系种类:

1)  零耦合关系:如果两个类之间没有耦合关系,称之为零耦合

图3:零耦合

时间: 2024-08-27 03:23:36

设计模式学习:依赖倒转原则的相关文章

设计模式六大原则--依赖倒转原则

       背景        前段时间有同学感觉自己电脑内存不够用了想买个内存条,只看她在网上捣鼓了一会就搞定了.也没见她看内存条的具体型号是否可以在其电脑上使用等等知识.一时不得其解,网上查了查才知道电脑的硬件是面向接口设计的,最近正好在学习设计模式,我想这是不是和设计模式中的依赖倒转原则有点关系.下面就让小生带领大家详细了解一下"依赖倒转原则(Dependence Inversion Principle)"吧.        定义        1.高层模块不应该依赖底层模块,

设计模式之--依赖倒置原则

1.什么是依赖倒转原则? 所谓依赖倒置原则,就是不论高层组件和低层组件都应该依赖于抽象,而不是具体实现类.听起来更像是"针对接口编程,而不是针对实现编程",但是这里依赖倒置原则更强调"抽象"的概念,不要让高层组件依赖低层组件,更不能依赖具体实现类,都要依赖于抽象.依赖倒置原则的核心在于"面向接口编程",目的在于"解耦". 2.这里的倒置是什么意思呢? 依赖倒置原则中的倒置是指我们的思想要和一般的"自顶向下"

依赖倒转原则

依赖倒转原则: 强内聚:像CPU一样,别的厂商木有办法造.因为看不见内部. 松耦合:像CPU的针脚一样,主板厂商知道怎么造主板能用cpu   依赖倒转原则:抽象不应该依赖结节,细节不应该依赖于抽象.说白了就是针对接口编程,而不是针对实现编程.   依赖倒转原则: 高层模块不应该依赖低层模块.两个都应该依赖抽象. 抽象不应该依赖结节.细节应该依赖抽象.   有些时候为了代码复用,一般会把常用的代码写成函数或类库.这样开发新项目时,直接用就行了.比如做项目时大多要访问数据库,所以我们就把访问数据库的

设计模式原则(单一、开放封闭、里氏代换、依赖倒转、迪米特法则五大原则)

原文:设计模式原则(单一.开放封闭.里氏代换.依赖倒转.迪米特法则五大原则) 单一职责原则 单一职责原则,就一个类而言,应该仅有一个引起它变化的原因.   如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或者抑制这个类完成其他职责的能力,当变化发生时,设计会遭受到意想不到的破坏.事实上,我们完全可以找出来进行分类,分离.   软件设计真正要做的许多内容,就是发现职责并把那些职责相互分离.其实要去判断是否应该分离出类来,也不难,那就是如果你能够想到多余一个的动机去改变

大话设计模式:(六大原则)

设计模式六大原则分别是单一职责原则(SPR).开放-封闭原则.里氏代换原则(LSP).依赖倒转原则.迪米特原则(LoD)和合成/聚合复用原则(CARP).   1.单一职责原则,就一个类而言,应该仅有一个引起它变化的原因. 如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或者抑制这个类完成其他职责的能力.这种耦合导致的设计,当变化发生时,设计会遭受到意想不到的破坏. 软件设计真正要做的许多内容,就是如果发现职责并把那些职责相互分离.其实这个要去判断是否应该分离出类来

设计模式学习总结

       之前一直是面向过程编程,前段时间因为某些原因需要更好的去理解一下面向对象思想精髓,在别人的推荐下看了<大话设计模式>这本书.通过对29个模式的学习,不仅仅了解了设计模式是个什么回事,也稍微加深了一点对面向对象(Object-oriented)技术.面向对象技术关注的是对象,对象的优点在于,可以定义自己负责的事物,作要求它自己的事情.对象应该自己负责自己,而且应该清楚地定义责任.它具有三大特征:封装.多态.继承.        封装(Encapsulation),也就是把客观事物封

简谈设计模式的几个原则

    最近设计模式进行到一半,停了两天没有敲代码,但是把整本书的内容看了又看,整理下思路...     刚学了一周多,但是对大话设计模式这本书我有一种一见如故的感觉.它里面的很多话我都觉得很经典.     比如,在序的前面,有一张非常空白的纸上,写了3段话,其中有一段是这样说的:了解优秀软件设计的演变过程比学习优秀设计本身更有价值,因为设计的演变过程中蕴藏着大智慧.  这本书的作者在每一章节,都用了大量的篇幅来写如何演变成一个模式的,在代码的变化中,我们可以看出很多东西和自己的影子.   ..

设计模式,六大设计原则,类的特性

国庆节没啥鸟事,把重要东西来个一遍. 风.fox 类的特性 封装,继承,多态 设计原则 设计模式的六大原则 1.开闭原则(Open Close Principle) 开闭原则是最基础的设计原则. 开闭原则: 对扩展开放,对修改关闭. 一个软件实体需要进行扩展来实现变化,而不是通过去修改已有的代码来实现变化 软件实体: 项目或软件产品中按照一定的逻辑规则划分的模块 抽象和类 方法 2.单一职责原则(Single Responsibility Principle) 简称SPR. 单一职责原则: 应该

设计模式之(1)设计原则

*开-闭原则(Open-Closed Principle, OCP):一个软件实体应当对扩展开发,对修改关闭.说的是,再设计一个模块的时候,应当使这个模块可以在不被修改的前提下被扩展.换言之,应当可以在不必修改源代码的情况下改变这个模块的行为. *.UML(统一建模语言, Unified Modeling Language),是OMG(Object Management Group)在1997年发表的图标式软件设计语言. 1.类图中的关系:(1).一般化关系:(Generalization)