首页 > 其他 > 详细

依赖倒转原则

时间:2014-04-06 00:59:18      阅读:513      评论:0      收藏:0      [点我收藏+]

依赖倒转原则:

    Dependency Inversion Principle,DIP,High level modules should not dependupon low level modules. Both should depend upon abstractions. Abstractionsshould not depend upon details. Details should depend upon abstractions.

    什么意思呢?三个意思

  • 高层模块不应该依赖低层模块,两者都应该依赖其抽象;
  • 抽象不应该依赖细节;
  • 细节应该依赖抽象。

    高层模块和低层模块容易理解,每一个逻辑的实现都是由原子逻辑组成的,不可分割的原子逻辑就是低层模块,原子逻辑的再组装就是高层模块。那什么是抽象,什么又是细节呢?抽象就是指接口或抽象类,两者都是不能直接被实例化的;细节就是实现类,实现接口或继承抽象类而产生的类就是细节。

 

为什么叫倒转?

    面向过程的开发时,为了使常用代码可以复用,一般都会把这些常用代码写成许多函数的程序库,这样我们在做新项目的时候,去调用这些底层的函数就可以了,比如,我们做的项目大多需要访问数据库,所以就把访问数据库的代码写成了函数,这也叫做高层模块依赖低层模块。

    但问题也就出在这里,我们要做新的项目,发现业务逻辑的高层模块都是一样的,但客户端希望使用不同的数据库或存储信息方式,这时就出现麻烦了,我们希望能够再次使用这些高层模块,但发现这些高层模块都是与底层的访问数据库绑定在一起的,没有办法复用这些高层模块,这样显然不合理,而如果不管高层模块还是底层模块都是依赖于抽象,具体一点就是接口或抽象类,只要接口是稳定的,那么任何一个的更改都不会影响到其它方面,这就使得无论是高层模块还是底层模块都可以很容易的被复用,这才是最好的办法。

 

依赖倒转原则,布布扣,bubuko.com

依赖倒转原则

原文:http://blog.csdn.net/augus3344/article/details/22993161

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!