依赖倒转原则
依赖倒转原则: ??? 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. ??? 什么意思呢?三个意思
??? 高层模块和低层模块容易理解,每一个逻辑的实现都是由原子逻辑组成的,不可分割的原子逻辑就是低层模块,原子逻辑的再组装就是高层模块。那什么是抽象,什么又是细节呢?抽象就是指接口或抽象类,两者都是不能直接被实例化的;细节就是实现类,实现接口或继承抽象类而产生的类就是细节。 ? 为什么叫倒转? ??? 面向过程的开发时,为了使常用代码可以复用,一般都会把这些常用代码写成许多函数的程序库,这样我们在做新项目的时候,去调用这些底层的函数就可以了,比如,我们做的项目大多需要访问数据库,所以就把访问数据库的代码写成了函数,这也叫做高层模块依赖低层模块。 ??? 但问题也就出在这里,我们要做新的项目,发现业务逻辑的高层模块都是一样的,但客户端希望使用不同的数据库或存储信息方式,这时就出现麻烦了,我们希望能够再次使用这些高层模块,但发现这些高层模块都是与底层的访问数据库绑定在一起的,没有办法复用这些高层模块,这样显然不合理,而如果不管高层模块还是底层模块都是依赖于抽象,具体一点就是接口或抽象类,只要接口是稳定的,那么任何一个的更改都不会影响到其它方面,这就使得无论是高层模块还是底层模块都可以很容易的被复用,这才是最好的办法。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |