posts - 5,  comments - 8,  trackbacks - 0

依赖倒置原则DIP(Dependency-Inversion Principles)

在传统的结构化编程中,最上层的模块通常都要依赖下面的子模块来实现,也称为高层依赖低层!

DIP原则就是要逆转这种依赖关系,让高层模块不要依赖低层模块.

教科书上的定义:
第1点:高层模块不依赖底层模块,两者都依赖抽象
第2点:抽象不应该依赖于细节,细节应该依赖于抽象

每个较高层次都为它所需要的服务声明一个抽象接口,较低的层次实现这些抽象接口,每个高层类都通过该抽象接口使用下一层的服务,接口属于高层,低层要实现高层的接口,因此现在是低层依赖于高层.
是依赖关系倒置和接口所有权的倒置.

启发式规则:
1.任何变量都不应该持有一个指向具体类的指针或者引用.
2.任何类都不应该从具体类派生(始于抽象,来自具体)
3.任何方法都不应该覆写它的任何基类中的已经实现了的方法.

这个原则对于那些虽然具体但是却稳定的类来说似乎并不是很合适, 如果一个类不太会改变, 而且也不太可能创建其他的派生类,那么依赖它似乎并没有太大的危害。比如java的String类。

(原文地址忘了,不好意思)
对上面的【1.任何... 2.任何... 3.任何...】 不是非常赞同。光看到词语就觉得有点极端化的感觉。
纯粹是菜鸟的个人感觉^^

posted on 2008-04-25 00:35 黄牛 阅读(18) 评论(0)  编辑 收藏 所属分类: 设计模式

标题  
姓名  
主页
Email (只有博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2008-04-25 00:37 编辑过
 
另存  打印