IoC(控制£≤↓(zhì)的(de)反轉:Inverse of Con↕σΩtrol)是(shì)Spring容器(Ω₽★qì)的(de)內(nèi)核,AOP、聲明(mín♦© ¶g)式事(shì)務等功能(néng)在此基礎↑₩✘上(shàng)開(kāi)花(huā)結果。但(dàn)是(shì)IoC這♥•♦(zhè)個(gè)重要(yào)的(de)概念卻比♥★較晦澀隐諱,不(bù)容易讓人(rén)望文(wén)生(shēng≈≈)義,這(zhè)不(bù)能(néng)不(bù)說(sh←≤uō)是(shì)一(yī)大(dà)遺憾。
那(nà)到(dào)底是(shì)什(shén)↑β麽東(dōng)西(xī)的(de)“控制(zhì)”被“反轉”"<了(le)呢(ne)?簡單地(dì)說(shuō),即是(shì)φββ™某一(yī)接口具體(tǐ)實現(xiàn)類的(de)選擇控制(zh α↓ì)權從(cóng)調用(yòng)類中移除,轉交給第三方(如(rú)配置✔≤ 文(wén)件(jiàn)XML)決定。 ≈∏♥;
因為(wèi)IoC确實不(bù)夠開(γ✔↑€kāi)門(mén)見(jiàn)山(shān),因此業(yè)界★♠$曾進行(xíng)了(le)廣泛的(de)討(tǎo)論,最終軟"♦件(jiàn)界的(de)泰鬥級人(rén)物(wù)δ®>Martin Fowler提出了(le)DI(依賴注入:Dependenc★ ₹y Injection)的(de)概念用(y£✘∞òng)以代替IoC,即讓調用(yòng)類對(duì) Ω♦某一(yī)接口實現(xiàn)類的(de)依賴'≥關系由第三方(容器(qì)或協作(zuò)類)注入,以☆£↔γ移除調用(yòng)類對(duì)某一(yī)接口實現(x✘&iàn)類的(de)依賴。“依賴注入”這(zhè)個(gè)名詞顯然比♠↔λ“控制(zhì)反轉”直接明(míng)了(le)、易于理(lǐ)解。
|