前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >依赖倒转原则 -- 强执若 or 弱执强?

依赖倒转原则 -- 强执若 or 弱执强?

作者头像
看、未来
发布2020-08-26 10:57:32
5780
发布2020-08-26 10:57:32
举报

修电脑的小故事

故事是别人的,不过放在这里也是很应景啦。 故事是这样的: 有个适龄小伙子,他还单着。有一天,他喜欢的那个姑娘突然给他打电话,说她的电脑坏了,一用就蓝屏警告。姑娘讲着讲着就要哭出来了,小伙子那个急啊,他心疼啊。所幸,小伙子凭借高超的技术,当机立断:内存条坏了。但是又苦于所爱隔山水啊,所以他只能当远程指挥官了。他指导姑娘:扒开电脑主机后盖,把内存条扯出来,然后开机看看,如果还蓝屏,那就把那条内存条插回去,把另一条拔出来。一顿操作猛如虎,姑娘在小伙无私又认真的指挥下,把电脑修好了。 过两天,姑娘又打电话给小伙子,说她收音机坏了,希望小伙能再远程指导一次。但是这次小伙无能了,他不行了,他不会,太难了。他放弃了,他把电话挂了。姑娘很失望。

但是姑娘不知道,电脑,是松耦合,强内聚的,哪个部件坏了就换哪个,但是收音机不一样,收音机是紧耦合的,牵一发而动全身,收音机没声音,可能是扩音器坏了,可能是信号接收其坏了,可能是解频罢工了···毕竟她是外行嘛,悲催的小伙子。

那么,就要切入到我们的正题了,松耦合、强内聚的电脑,是怎么组装的呢?没错,本篇,我们来聊聊组装电脑哈哈哈哈☺☺

从电脑的组装出发

像内存条这种东西啊,管你是哪家生产的,只要符合规格,再比如鼠标、键盘、电池(电池得配套),反正哪个部件坏了就换哪个部件。为什么这些部件不论插在哪一台电脑上都能使用呢?是这些部件配合电脑主板设计,还是电脑主板配合这些零部件设计呢?

想来答案已经很明确了。就拿CPU来说,CPU的对外都是针脚式或触点式的标准接口,只要接口设计好,内部再复杂和外界也没有关系。哪个主板要插CPU,那就得和CPU的接口对上。那么这时候如果电脑的内存条坏了,就不该成为你更换麦克风的理由。这不是开玩笑,要是收音机的外放坏了,可能得整部收音机脱胎换骨了。

PC的接口始终是有限的,但是软件设计得好,却可以不断地拓展的。

是时候上概念了:依赖倒转原则

  • 抽象不应该依赖于细节,细节应该依赖于抽象。
  • 低层实现不应该依赖于高层实现,高层实现也不应该依赖于低层实现,它们都应该依赖于抽象。

是不是有点吃惊,刚刚明明说内存,主板,CPU,什么什么的。哈哈,别绕晕了,我可从没说过主板要依赖于内存哦。插内存的地方,还有个插槽呢,插鼠标的地方,还有个USB接口呢。这些接口,就是抽象。

说白了,就是要针对接口编程,不是实现。

在这里插入图片描述
在这里插入图片描述

总结

依赖倒转原则可以说是面向对象编程的标志,用哪种语言来实现并不重要,殊途同归。只要都是针对抽象编程,而不是针对细节编程,所有的依赖关系都是终结于抽象类,那么便是面向对象的设计。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-05-12 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 修电脑的小故事
  • 从电脑的组装出发
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档