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

  1,收音机就是典型的耦合过度,只要收音机出故障,不管是没有声音,不能调频,还是有杂音,反正都很难修理,不懂的人根本没法修,因为任何问题都可能涉及其他部件,各个部件相互依赖,难以维护。收音机式的强耦合开发还是太多了,比如前段时间某银行出问题,需要服务器停机大半天的排查修整,这要损失多少钱。如果完全面向对象设计,或许问题的查找和修改就容易很多。

  2,相对收音机,PC电脑就是典型的面向对象设计。

  可以把PC电脑理解成是大的软件系统,任何部件如CPU,内存,硬盘,显卡等都可以理解为程序中封装的类或程序集,由于PC易插拔的方式,那么不管哪一个出问题,都可以在不影响别的部件的前提下进行修改或替换。PC电脑里叫易插拔,面向对象里把这种关系叫什么?

  应该是叫强内聚,松耦合吧。例如CPU,强内聚很强,对外都是阵脚式或触点式等标准的接口,这就是接口的最大好处。CPU只需要把接口定义好,内部再复杂我也不让外界知道,而主板只需要预留与cpu阵脚的插槽就可以了。

  3,依赖倒转原则,说白了,就是针对接口编程,不要对实现编程。

  无论主板,CPU,内存,硬盘都是在针对接口设计的,如果针对实现来设计,内存就要对应到具体的某个品牌的主板,那就会出现换内存需要把主板也换了的尴尬了。所以说,PC电脑硬件的发展,和面向对象思想发展是完全类似的。

  

@总结:

1,这也说明世间万物都是遵循某种类似的规律,谁先把握了这些规律,谁就最早成为了强者。

posted on 2014-03-28 21:40  学到老死  阅读(314)  评论(0编辑  收藏  举报