摘要面向对象设计(OOD)有助于我们开发出高性能、易扩展以及易复用的程序。其中,OOD有一个重要的思想那就是依赖倒置原则(DIP),并由此引申出IoC、DI以及Ioc容器等概念。通过本文我们将一起学习这些概念,并理清他们之间微妙的关系。目录前言依赖倒置原则(DIP)控制反转(IoC)依赖注入(DI)...
分类:
其他好文 时间:
2014-07-16 00:51:33
阅读次数:
570
在前面的篇幅中对依赖倒置原则和IoC框架的使用只是做了个简单的介绍,并没有很详细的去演示,可能有的朋友还是区分不了依赖倒置、依赖注入、控制反转这几个名词,或许知道的也只是知道依赖倒置是原则,依赖注入、控制反转都是实现的方式,我将在下面对这些个名词做详细的介绍,在篇幅的最后还会自己实现了IoC容器的功能。...
分类:
Web程序 时间:
2014-07-06 12:30:42
阅读次数:
408
为了提高软件的可维护性,应该遵循以下几点原则:1.“开放--封闭”原则(OCP) 一个软件实体应该对扩展开放,对修改封闭.2.里氏代换原则(LSP) 子类型必须能替换她们的基类型,反过来则不成立。3.依赖倒置原则(DIP) 要依赖于抽象,不要依赖于具体。 优点是降低耦合,提高可扩展性和稳定性...
分类:
其他好文 时间:
2014-07-05 18:26:40
阅读次数:
185
类的设计最好遵循5大原则,1、单一指责原则,2、开放封闭原则,3、liskov替换原则,4、依赖倒置原则(抽象不应依赖于具体,相反,具体应该依赖于抽象),5、接口隔离原则(就是接口细分,一个接口内的方法应该是用户都需要的)。具体参考《敏捷软件开发》第2部分(第98页)类的设计估计要用到许多模式,注意...
分类:
其他好文 时间:
2014-06-28 09:33:33
阅读次数:
177
设计模式六大原则(3):依赖倒置原则定义:高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。问题由来:类A直接依赖类B,假如要将类A改为依赖类C,则必须通过修改类A的代码来达成。这种场景下,类A一般是高层模块,负责复杂的业务逻辑;类B和类C是低层模块,负责基本的...
分类:
其他好文 时间:
2014-06-25 23:29:35
阅读次数:
247
依赖倒置原则(The Dependency Inversion Principle)可表述为 “高层模块不应该依赖于低层模块,二者都应该依赖于抽象。抽象不应该依赖于具体实现细节,而具体实现细节应该依赖于抽象。(A. High level modules should not depend upon ...
分类:
其他好文 时间:
2014-06-20 20:58:39
阅读次数:
354
DIP,IoC,DI基本概念依赖倒置原则(DIP,Dependency Inverse Principle):强调系统的“高层组件”不应当依赖于“底层组件”,并且不论是“高层组件”还是“底层组件”都应当依赖于抽象。抽象不应当依赖于实现,实现应当依赖于抽象。依赖(Dependency):组件A如果:①...
分类:
其他好文 时间:
2014-06-17 13:21:36
阅读次数:
265
DIP,dependency inversion principle,中文翻译为“依赖倒置原则”。 DIP是大名鼎鼎的Martin大师提出来的,他在1996 5月的C++ Reporter发表“ The Dependency Inversion Principle”的文章详细阐述了DIP原则,并且在他的经典著作《 Agile Software Development, Principles, Pa...
分类:
其他好文 时间:
2014-06-15 15:33:53
阅读次数:
277
1、问题由来
类A直接依赖于类B,假如要将类A修改为依赖类C,则必须通过修改类A的代码来达成。这种场景下,类A一般是高层模块,负责复杂的业务逻辑。类B和C是底层模块,负责基本的原子操作。假如修改类A,将会给程序带来不必要的风险。而遵循依赖倒置原则的程序设计可以解决这一问题。2、什么是依赖倒置原则 ....
分类:
其他好文 时间:
2014-06-12 13:56:54
阅读次数:
315