关闭

大话设计模式-第05章 会修电脑不会修收音机?-依赖倒转原则

标签: 依赖倒转原则里氏转换原则开放封闭原则
295人阅读 评论(0) 收藏 举报
分类:

05会修电脑不会修收音机?-依赖倒转原则


    依赖倒转原则

        A:高层模块不应该依赖底层模块。两个都应该依赖抽象。

        B:抽象不应该依赖细节。细节应该依赖抽象。

    依赖倒转原则,也翻译成依赖倒置原则。原话解释是抽象不应该依赖细节,细节应该依赖于抽象,说白了,就是要针对接口编程,不要对实现编程。


    里氏转换原则

        一个软件实体如果使用的是父类的话,那么一定适用于其子类,而且他察觉不出来父类对象和子类对象的区别。也就是说,在软件里面,把父类都替换成它的子类,程序的行为没有变化,简单的说,子类型必须能够替换掉它们的父类型。

        如:一个是鸟类,一个企鹅类,鸟类可以飞,企鹅不会飞,那么企鹅继承鸟这个类是否合适?在这种情况下就不合适了,因为此时企鹅不能以父类-鸟的身份出现(企鹅不会飞),所以,企鹅不能继承鸟类(个人觉得此时就说明了能够飞行并不是鸟的本质属性之一,鸟这个抽象类中压根不应该包括能够飞行这个属性)。

    只有当子类可以替换掉父类,软件单位的功能不受到影响时,父类才能真正被复用,而子类也能够在父类的基础上增加新的行为。


    正是由于里氏代换原则,才是的开放-封闭原则成为了可能。

    正是由于子类型的可替换性才使得使用父类类型的模块在无需修改的情况下就可以扩展。不然还谈什么扩展开放,修改关闭呢。


依赖倒转原则.png

空心三角形+实现表示继承

实线+箭头表示关联(association)关系,表示一个类知道另一个类

association |əˌsəʊsɪˈeɪʃn| noun协会、联合、关联


    依赖倒转原则可以说是面向对象设计的标志,用哪种语言来编写程序不重要,如果编写时考虑的都是如何针对抽象编程而不是针对细节编程,即程序中所有的依赖关系都是终止于抽象类或者接口,那就是面向对象的设计,反之那就是过程化的设计了。

0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

第5章 会修电脑不会修收音机?——依赖倒转原则 大话设计模式

第5章 会修电脑不会修收音机?----依赖倒转原则 5.1MM请求修电脑 小莱和大鸟吃完晚饭后,在一起聊天。 此时,突然声音响起。 “死了都要爱,不淋滴尽致不痛快,感情多深只有这样,才足够表白。死了都要爱……” 原来是小菜的手机铃声,大鸟吓了一跳,说道:“你小子,用这歌做铃声,吓唬人啊!这...
  • u012605629
  • u012605629
  • 2014-12-14 16:06
  • 530

《大话设计模式》之--第5章 会修电脑不会修收音机?----依赖倒转原则

http://blog.csdn.net/monkey_d_meng/article/details/5681998 第5章 会修电脑不会修收音机?----依赖倒转原则 5.1MM请求修电脑 小莱和大鸟吃完晚饭后,在一起聊天。 此时,突然声音响起。 “死了都要爱,...
  • thinkinwm
  • thinkinwm
  • 2013-06-12 19:01
  • 540

第五章 会修电脑不会修收音机?---依赖倒转原则(设计模式六大原则(3):依赖倒置原则)

1.依赖倒转原则:抽象不应该依赖细节,细节应该依赖于抽象。就是要针对接口来编程,不要对实现编程。组装机过程中,CPU,内存,硬盘都是在针对接口设计的,如果针对实现来设计,那就会出现换内存需要把主板也换了的尴尬。 2.高层模块不应该依赖底层模块。两个都应该依赖抽象。 3.里氏代换原则:子类型必须能...
  • jiachangbin1989
  • jiachangbin1989
  • 2014-05-14 15:58
  • 292

评程序员和会不会修电脑到底有几毛钱关系?

转自:http://www.360doc.com/content/16/0116/18/848059_528431282.shtml其实这是一个老生常谈却至今没有明确答案的问题:之所以想发表这篇文章是因为最近很多程序猿跟我吐槽修电脑这事,今天我不得不出马把这事的解决办法给你们。Q:“我电脑好像有点问...
  • pukuimin1226
  • pukuimin1226
  • 2016-01-19 10:43
  • 2293

大话设计模式之依赖倒转原则

大话设计模式 六大原则:依赖倒转原则
  • u010540106
  • u010540106
  • 2014-06-03 17:29
  • 1656

大话设计模式阅读笔记-依赖倒转原则

1.依赖倒转原则,也有翻译成依赖倒置原则的。依赖倒转原则,原话解释是抽象不应该依赖细节,细节应该依赖于抽象,这话绕口,说白了,就是针对接口编程,不要对实现编程。 2.里氏代换原则:一个软件实体如果使用的是一个父类的话,那么一定适用于其子类,而且它察觉不出父类对象和子类对象的区别,也就是说,在软件里面...
  • liupinghui
  • liupinghui
  • 2017-06-02 20:57
  • 106

大话设计模式(十 会修电脑不会修收音机?——聊设计模式原则)

(续上篇)          小菜学会了反射后,正在兴奋,想着大鸟的问题。此时,突然声音响起。       “死了都要爱,不淋漓尽致不痛快,感情多深只有这样,...
  • GarfieldEr007
  • GarfieldEr007
  • 2015-07-14 13:38
  • 472

为什么程序员这么讨厌被人问「会不会修电脑」?

你要知道,这个世界上有那么一类人,他们永远保持着自私的心态。无论什么时候,他们都在为自己的利益做打算。当你说你在银行工作,他们第一个想法是你能不能给搞到贷款或者办张没有额度限制的信用卡。当你说你在医院工作,他们第一个想法是能不能去看病不排队或者在医院拿点药品送他。 而软件行业,既是和大众息息相...
  • u011980994
  • u011980994
  • 2014-04-15 18:38
  • 1229

依赖倒置原则之我见

依赖倒置原则(Dependence Inversion Principle),简称DIP。 定义:High level modules should not depend upon low level modules, Both should depend upon abstractions....
  • imyfriend
  • imyfriend
  • 2013-02-11 18:05
  • 5309

程序员你会修电脑吗?

这是我迄今为止见过的最好的关于程序员会不会修电脑的解答。推荐大家看一下。 程序员和会不会修电脑到底有几毛钱关系? Q:“我电脑好像有点问题,你帮我看看哪里出问题了帮我修一下行不?” A:“。。。看看可以,但其实我也不太会修电脑” Q:“什么呀,你不是程序员吗,怎么...
  • zhongqi2513
  • zhongqi2513
  • 2016-03-11 21:05
  • 741
    个人资料
    • 访问:88938次
    • 积分:2543
    • 等级:
    • 排名:第16661名
    • 原创:170篇
    • 转载:5篇
    • 译文:5篇
    • 评论:1条