书上对依赖倒转原则的描述是
高层不能依赖底层模块, 二者都应该依赖抽象
那为什么不直接叫依赖抽象原则呢? 到底倒转在了什么地方呢?
- 按照我们的正常思路, 高层使用底层的各种服务进行业务逻辑的开发, 所以高层是依赖底层的, 但是业务总是会发生变化, 这个时候如果底层需要进行改动, 那就要伤筋动骨, 所以我们把底层抽象一下, 让高层不用关心底层的实现即可.’
- 但是这哪里体现出来了倒转了呢? 这样完全可以叫依赖抽象原则,或者是依赖接口原则啊, 其实是这样的,我们不直接对底层进行抽象, 而是对高层需要的服务进行抽象, 因为接口的定义本来就是高层的需求, 这样底层就不用关心自己面对的到底是什么业务, 只要实现功能即可, 这样一来, 抽象层其实就是高层的业务逻辑中需要的功能的抽象, 这样就从原来的
高层依赖底层
转化为了底层依赖高层(毕竟抽象在高层)
.\
依赖反转
这篇文章讲的更加详细