5、依赖倒置原则

电脑主板上的显卡,内存,硬盘,风扇...等!如果说和主板的关系是 易插拔关系.
那么软件中就应该是 高内聚,低耦合了.

依赖倒置原则,抽象不应该依赖细节,解析应该依赖抽象,说白了就是针对接口编程,不要对实现编程.
原则一:高层模块不应该依赖低层模块.两个都应该依赖抽象.
原则二:抽象不应该依赖细节,细节应该依赖抽象.

高层模块依赖低层模块,低层数据库封装的DataBases,高层所有业务模块对数据库操作都会调用低层的方法进行对数据库操作.这时高层模块依赖低层模块了

问题:这样代码量减少了没错,如果更换了数据库,但是高层模块是一样的,现在高低曾是依赖的,这样不容易得到复用,(比如之前是sqlserver,现在更换oracle了,语句等等都不一样)
如果现在依赖低层是一个抽象接口或者抽象类,就可以解决这个问题了.但随之而来的就是 里氏替换原则了

里氏替换原则,儿子可以替换老子,老子不能替换儿子!!(有点俗了,好理解!)
当子类替换掉父类,但功能不受到影响,父类才能真正被复用,而子类也能够在父类的基础上增加新的行为.
由于子类型的可替换性才使得使用父类类型的模块在无需修改的情况下就可以扩展.

依赖倒转其实就是谁也不要依靠谁,除了约定的接口,大家都可以灵活自如!!

猜你喜欢

转载自zcw-java.iteye.com/blog/1190682