IOC+DI整理

反轉(zhuǎn)了什么:將原有的【自己主動(dòng)依賴另一個(gè)對象到自身】,反轉(zhuǎn)成為【由第三方管理容器來主動(dòng)注入另一個(gè)對象到自身】,獲取另一個(gè)對象的控制權(quán)由原有的【自身】反轉(zhuǎn)到了【IOC容器主動(dòng)注入

所以【控制反轉(zhuǎn)】和【依賴注入】實(shí)際上是從不同角度描述一個(gè)事件,控制反轉(zhuǎn)(IOC)描述【控制權(quán)的移交】,依賴注入(DI)描述【對象“依賴“ioc容器對自身“注入“另一個(gè)對象】


轉(zhuǎn)為


由一個(gè)第三方容器來控制,將所需的對象進(jìn)行分配,實(shí)現(xiàn)對象之間的解耦

??? 軟件系統(tǒng)在沒有引入IOC容器之前,如圖1所示,對象A依賴于對象B,那么對象A在初始化或者運(yùn)行到某一點(diǎn)的時(shí)候,自己必須主動(dòng)去創(chuàng)建對象B或者使用已經(jīng)創(chuàng)建的對象B。無論是創(chuàng)建還是使用對象B,控制權(quán)都在自己手上。

??? 軟件系統(tǒng)在引入IOC容器之后,這種情形就完全改變了,如圖3所示,由于IOC容器的加入,對象A與對象B之間失去了直接聯(lián)系,所以,當(dāng)對象A運(yùn)行到需要對象B的時(shí)候,IOC容器會(huì)主動(dòng)創(chuàng)建一個(gè)對象B注入到對象A需要的地方。

??? 通過前后的對比,我們不難看出來:對象A獲得依賴對象B的過程,由主動(dòng)行為變?yōu)榱吮粍?dòng)行為,控制權(quán)顛倒過來了,這就是“控制反轉(zhuǎn)”這個(gè)名稱的由來。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容