依賴(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
在我接觸的很多.