一,依赖倒转其实可以说是面向对象设计的标志,用哪种语言来编写程序不重要,如果编写时考虑的都是如何针对抽象编程,而不是针对细节编程,即程序中所有的依赖关系都是终止于抽象类或者接口,那就是面向对象的设计,反之,那就是过程化的设计了[ASD]。
1,收音机就是典型的耦合过度,只要收音机出故障,不管是没有声音,不能调频,还是有杂音,反正都很难修理,不懂的人根本没法修,因为任何问题都可能涉及其他部件,各个部件相互依赖,难以维护。收音机式的强耦合开发还是太多了,比如前段时间某银行出问题,需要服务器停机大半天的排查修整,这要损失多少钱。如果完全面向对象设计,或许问题的查找和修改就容易很多。
2,相对收音机,PC电脑就是典型的面向对象设计。
可以把PC电脑理解成是大的软件系统,任何部件如CPU,内存,硬盘,显卡等都可以理解为程序中封装的类或程序集,由于PC易插拔的方式,那么不管哪一个出问题,都可以在不影响别的部件的前提下进行修改或替换。PC电脑里叫易插拔,面向对象里把这种关系叫什么?
应该是叫强内聚,松耦合吧。例如CPU,强内聚很强,对外都是阵脚式或触点式等标准的接口,这就是接口的最大好处。CPU只需要把接口定义好,内部再复杂我也不让外界知道,而主板只需要预留与cpu阵脚的插槽就可以了。
3,依赖倒转原则,说白了,就是针对接口编程,不要对实现编程。
无论主板,CPU,内存,硬盘都是在针对接口设计的,如果针对实现来设计,内存就要对应到具体的某个品牌的主板,那就会出现换内存需要把主板也换了的尴尬了。所以说,PC电脑硬件的发展,和面向对象思想发展是完全类似的。
@总结:
1,这也说明世间万物都是遵循某种类似的规律,谁先把握了这些规律,谁就最早成为了强者。