phpIOC(控制回转)DI(依赖灌注)

原创
小哥 2年前 (2022-11-21) 阅读数 69 #大杂烩

IOC(控制反转):全称为:Inverse of Control。从字面上理解就是控制反转了,
将对在自身对象中的一个内置对象的控制反转,反转后不再由自己本身的对象进行控制这个内置对象的创建,
而是由第三方系统去控制这个内置对象的创建。

DI(依赖注入):全称为Dependency Injection,意思自身对象中的内置对象是通过注入的方式进行创建。
依赖注入和控制反转的含义相同,只不过这两个称呼是从两个不同的角度去描述的。
先理解传统的方式:当某个对象(调用者)需要调用另一个对象(被调用者,即被依赖对象)时,
在传统模式下,调用者通常会“new”来创建对象,带来的问题是:两者通过new产生了调用与被调用的关系(耦合)。

在使用框架后,对象的实例不再由调用者来创建,而是由容器来创建,容器会负责控制程序之间的关系,
而不是由调用者的程序代码直接控制。这样,控制权由应用程序转移到了容器,控制权发生了反转,
即控制反转了。
从容器的角度来看,容器负责将依赖对象赋值给调用者的成员变量,这相当于注入了它的依赖的实例,
即依赖被容器注入了。
简单来说就是把本来在类内部控制的对象,反转到类外部进行创建后注入,不再由类本身进行控制,这就是IOC的本质。

版权声明

所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除

热门