真正理解控制反转

什么是控制反转呢,通俗点理解就是上层依赖下层的这种关系的扭转,让下层去依赖上层。
把下层作为参数传递给上层的构造函数,实现上层对下层的“控制”,而不是依赖。
好处就是降低耦合,提升代码的可维护性。

我们先来看一个上层依赖下层的例子。以设计一个行李箱为例。
底盘的尺寸依赖于轮子的大小,箱体的大小又依赖于底盘的大小。



若一开始轮子的尺寸是固定不变的。那代码就是如下所示。

那么随着功能迭代,现在有这样一个需求,轮子的尺寸必须是动态可替换的,那因为这样一种上层依赖下层的关系,轮子的设计一改变,那上层跟着都得改变,像这样,轮子的size需要从上层依次传递给下层的轮子类,每一个类都需要修改。

假如说有一个时间很久的老项目就是采用了这种设计,依赖关系的类多达几十甚至上百,一旦需要修改底层依赖,那我估计分分钟你想跑路了,毕竟头发重要。很难维护。




控制反转,化腐朽为神奇

那么我们接下来把依赖倒置,实现控制反转。如图:

那么此时,我们再来动态维护轮子的尺寸,需要做什么样的修改呢,如图,只需要修改轮子Tire类的设计即可

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
禁止转载,如需转载请通过简信或评论联系作者。

友情链接更多精彩内容