?IOC概要
控制反轉(zhuǎn)不是一種技術(shù)而是一種思想,有別于傳統(tǒng)的思想的是,它將設(shè)計(jì)好的對(duì)象交于容器來控制,而不是對(duì)象的內(nèi)部直接控制。
?傳統(tǒng)應(yīng)用示意圖.png
當(dāng)有了IOC/DI容器之后,就不需要在客戶端類中主動(dòng)創(chuàng)建這些對(duì)象了
?IOC容器管理獲取對(duì)象補(bǔ)救.png
IOC容器可以做什么
IOC是一種思想,一種面向?qū)ο蟮木幊谭▌t,它改變了既有的思想,把從應(yīng)用程序主動(dòng)獲取資源到必須等待IOC容器來創(chuàng)建并注入它所需要的資源。
這樣的好處是,對(duì)象與對(duì)象之間能夠松耦合,便于測(cè)試,利于功能的復(fù)用。把創(chuàng)建和查找對(duì)象的控制權(quán)交予IOC容器中,讓開發(fā)人員更能關(guān)注業(yè)務(wù)邏輯的實(shí)現(xiàn)。
總結(jié):由IOC容器幫對(duì)象來查找相應(yīng)的依賴對(duì)象并注入,而不是由對(duì)象主動(dòng)去找。
DI依賴注入
關(guān)鍵點(diǎn)在于:
- 誰依賴誰:應(yīng)用程序依賴IOC容器
- 為什么需要依賴:因?yàn)閼?yīng)用程序需要IOC容器來提供對(duì)象需要的外部資源
- 誰注入誰:IOC容器注入應(yīng)用程序某個(gè)對(duì)象,應(yīng)用程序依賴的對(duì)象
- 注入了什么:注入了某個(gè)對(duì)象所需要的外部資源(對(duì)象、資源、常量數(shù)據(jù))
歡迎郵件交流zhanghanbin1990@live.cn,并感謝importJava