黑马程序员技术交流社区
标题:
设计模式之 依赖倒置原则:(dependence inversion principle)
[打印本页]
作者:
zlb820
时间:
2016-6-3 22:41
标题:
设计模式之 依赖倒置原则:(dependence inversion principle)
依赖倒置原则:(dependence inversion principle)
依赖倒置原则包含
三层定义:
1.高层模块 不应该依赖底层模块,两者都应该依赖其抽象
2.抽象不应该依赖细节
3.细节应该依赖抽象
在java语言中,
抽象就是借口或者抽象类
,他们不能被实例化;
细节就是实现类
,实现接口或者继承抽象类而产生的类,他们可以实例化。
依赖倒置原则:更精简的说法就是 面向接口编程 OOD object oriented design。
接口:借口是契约
,是约束设计双方必须遵守的约定,在设计中 我们遵从 约定优于
注意:在java语言中,变量有两种类型:表面类型和实际类型,表面类型是在定义时的赋予的类型,实际类型是对象的类型
比如 :IuserDao(表面类型) userdao=new UserDaoImpl(); 实际类型是 UserDaoImpl()
对象间的依赖关系
,有三种方式注入
1.构造函数注入
2.set方法注入
3.接口注入
前两个用过框架的,应该很容易理解,因为框架一直就在用,
第三种是 在抽象的类或者接口定义的 方法的 输入参数中,传入 “参数接口”
那么
如何去使用这个原则
:
需要遵循以下的规则:
1
.设计时,每个类都尽量的拥有接口或者抽象类,或者两者都有
2.
变量的表面类型最好是接口 比如
IuserDao(表面类型) userdao=new UserDaoImpl();
3.
任何类都不应该从具体的类派生
4
.尽量不要覆写 积累的方法
如果积累是一个抽象类,并且这个方法已经实现了,子类尽量不要覆写。类之间的依赖是抽象,覆写了抽象方法,对依赖的稳定性会产生一定的影响。
所谓的倒置
,是相对于正置而言,正置是 类间的依赖是实实在在的实现类之间的依赖,而依赖倒置则是要将类抽取出接口,是思维方式的倒置。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2