依赖反转 ,控制注入

本文内容参考自:https://www.zhihu.com/question/32108444

如果A的一个功能的实现需要借助B,那么我们就称B是类A的依赖,如果在A类的内部去实力话B,他们之间就有较高的耦合。一旦B出现问题,就需要对A进行改造。如果依赖多了,就会出现牵一发而动全身的情况,程序机器难维护。

解决问题方法,就是把A对B的控制全抽出来,交给第三方去做。我们就称之为控制反转,控制反转是一种思路。依赖注入是一种典型的实现。实现依赖注入的方法可以是构造函数,属性,工厂方法。这样就极大程度的对类A和对类B进行了解耦。

 

本来我接收一个对象,现在我接收一个参数。如内部类,转化未一个方法的参数。

 

简单来说,A依赖B,但是A不控制B的创建和销毁。b的依赖控制全交给a之外的人来处理。这叫控制反转。

A依赖b ,必然有b的实例。

IOC Container 

随着依赖的频繁的使用,要实现控制反转,会有很多重复的代码,就有了依赖注入,控制反转的组件和框架。

posted @ 2020-05-08 10:09  dousil  阅读(132)  评论(0编辑  收藏  举报