还是来看
《spring5核心与手写30个类》一书
的简短定义(以后不引用出处了,有机会把觉得不错的书给大家分享一下就好了)
作者说的我是说不出来,介绍一个类似的词,在编程接界中有个很装逼但是其实很简单的词汇:代码入侵,啥是代码入侵呢:就是低游模块引入了高层模块的代码,构成了相互依赖,或者逆向依赖。比如说正常A模块是功能入口方法,B模块是支持A工作的服务方,正常是A调用B的模块,但是在B模块又调用了A模块的方法,那A就对B造成了入侵,正常B是不应该调用A的,B只能被A调用。
其实个人理解只要不出现代码入侵,并且是面向接口编程,其实就做到了依赖倒置的原则。
原则只是原则,有时候总是要不得已去打破这些规则,比如两个系统之间的状态传递,出单和库存之间也可能出现相互调用,但是没办法啊,不相互调用功能就不好实现,总不能在设计一个消息总线,吧、把星星点点的数据都交给总线服务去管理,那样也得看业务,如果就因为一条消息设计一个总线,代码的可阅读性与架构的简洁性,按道理是比设计原则和设计模式更重要的。