依賴(lài)注入時(shí)編程手段中解耦和封裝的一個(gè)非常重要的手段,我本人已經(jīng)到了沒(méi)有DI無(wú)法編寫(xiě)項(xiàng)目的程度了,在.NET Framework中微軟并沒(méi)有在FCL中引入DI,雖然推出了“Unity”。而在.NET Core中DI幾乎是所有組件的標(biāo)配可見(jiàn)DI有多么的重要,本節(jié)主要簡(jiǎn)單介紹下微軟在.NET Core中加入的DI組件。

回到目錄

前言

DIP、IoC、DI

說(shuō)起DI不得不提IoC這個(gè)模式,很多人會(huì)把DI和IoC混為一談,但其實(shí)這兩者是概念和實(shí)現(xiàn)的關(guān)系。

依賴(lài)倒置原則(DIP):軟件設(shè)計(jì)原則,要依賴(lài)于抽象,不要依賴(lài)具體實(shí)現(xiàn)。

控制反轉(zhuǎn)(IoC):一種實(shí)現(xiàn)DIP原則的模式。

依賴(lài)注入(DI):IoC的具體實(shí)現(xiàn)。

DIP就好比一個(gè)目標(biāo)一個(gè)法則。

IoC就好比是論文,“應(yīng)該怎么做才能遵循DIP”

DI就好比是實(shí)際的產(chǎn)品,“落實(shí)到具體的語(yǔ)言的工具”

關(guān)于這個(gè)比喻可能不是很準(zhǔn)確,大家可以使用搜索引擎去了解更為詳細(xì)的差異。

在.NET

在我接觸的很多.