依赖倒转原则(Dependence Inversion Principle,简称DIP)讲的是:
1)高层模块不应该依赖底层模块,两个都应该依赖抽象。
2)抽象不应该依赖细节,细节应该依赖抽象。
依赖倒转的另外一种表述是:要针对接口编程,不要针对实现编程。
也就是说,应该使用 java 接口或抽象 java 类进行变量的类型声明、参量的类型声明、方法的返回类型声明、以及数据类型的转换等;
不应该使用具体的 java 类型进行变量的类型声明、参量的类型声明、方法的返回类型声明、以及数据类型的转换等。
在面对对象中,两个类可能发生的几种耦合(依赖)关系:
1)零耦合 : 两个类没有发生耦合关系。
2)具体耦合: 具体耦合关系发生在两个具体的类之间,经由一个类引用另一个类造成。
3)抽象耦合: 抽象耦合发生在一个具体类和一个抽象之间或者 JAVA 接口之间,使两个必须发生关系的类之间存在最大的灵活性。
DIP(依赖倒转原则)要求客户端依赖抽象耦合。
传统的过程性系统的设计倾向于使高层次的模块依赖于低层次的模块,抽象层次依赖于具体层次。
依赖倒转原则就是要把这个错误的依赖关系倒转过来,这也就是“依赖倒转原则”的来由。
如下简单的示意图所示:
posted on 2012-08-04 16:18
fancydeepin 阅读(635)
评论(0) 编辑 收藏