对委以倒置的质疑

对依赖倒置的质疑
本帖最后由 wunglee 于 2010-09-15 21:27:14 编辑
依赖倒置是一种编译期的依赖关系,而不是运行期的,实现抽象接口的方法归根到底在运行期还是被调用者,也就是说,编译期的依赖关系是倒置了,但运行期的调用关系没有变,被调用者的改动同样会影响调用者的稳定性,只是调用者不用因被调用者改动而重新编译而已,仅此而已,这只对便于扩展功能有意义,我想大家都熟悉这个公式:包的稳定性I=Ce/(Ca+Ce),Ce是传出耦合数,Ca是传入耦合数,按照依赖倒置原理,传出变成了传入,这个公式就把包的稳定性提高了,事实上,依赖倒置后调用关系并没有发生改变,稳定性何来提高呢?
------解决方案--------------------
支持lz,蛮有研究的。
稳定性是“不因其它包的改变而使运行结果受影响的能力“
你考虑的也是对的,不过书上说的是设计的稳定性,不是运行结果的稳定性。
------解决方案--------------------
同意lz的说法,DIP只是提高了模块之间的独立性,稳定性问题归根到底还是决定于具体的代码
------解决方案--------------------
我昨天刚看依赖倒置原则,你学的比我的深很多,学习!
------解决方案--------------------
楼上说到点子上了,这些原则都是编译期的。
面向对象本来就是让人能更好理解和设计代码,它不是给机器用的,对机器来说,2进制是最好的。
什么是编译期的?就是人写出来的