很多博客或者书上都会提到依赖倒置,给出的示例呢也都是提取接口来隔离两个模块。那么为啥叫倒置呢?然后多半是这么解释的:以前设计软件能都是从高层模块调用底层模块,这样呢高层模块就严重依赖于底层模块了,所以要倒过来。至于怎么倒过来就是前面说的就是要依赖抽象(接口)。但是这样哪里能看出倒置的意思呢?我想了下觉得应该这样解释:
纵然高层不应该依赖底层,那么倒置的话,是说底层依赖高层?而事实上我们要做的是要通过接口来互相隔离。高层业务需要复用,底层模块的也需要复用。
所谓“倒置”个人觉得并非真正代码层面真正的依赖关系,而是实现逻辑上,底层的功能是根据高层的需求来定的。
所以我觉得依赖倒置改成依赖抽象更符合这条原则。