最早看到“向依賴關系宣戰”這篇文章是在《程序員》雜志上的。當時流行討論ioc di等概念,這篇文章一出,似乎已經將這些混亂的東西講清楚了。我就是從這篇文章開始理解IoC阿、DI的概念的。
現在看來這篇文章確實比較詳細,但是反復看的話似乎感覺比較羅嗦。而且通過這兩年的實踐過后,我發現其實這幾個概念在描述時還是有偏差的。
下面有些質疑之處:
1。 IoC與DI,馬丁同學提出的依賴注入。。這個名詞表面上怎么看都和控制反轉扯不上關系。但是他又說“。。。。應該叫DI”。結果所有人就把DI與IoC等同,甚至就把DI當作IoC的一個別名來用。。。
我到感覺DI與IoC是指同以概念的不同方面。DI強調的是“依賴的形成”即,框架或容器如何得到需要運行的“實現(implements)”的。而IoC本身概念是強調整體主控權與“庫”調用方式相反。即由框架或容器主導主控權。或者說依賴于控制權相反。
2。IoC與依賴倒置。
文中似乎沒有就兩者關系進行詳細說明。
個人感覺IoC其實就是以依賴倒置為基礎的。IoC是在特定環境中的DI特例,并且關注到了“實現”與“使用者”依賴關系產生的問題,(因為事實上調用時還是存在依賴關系的。)所以需要有“注冊”這個過程。但是IoC并沒有強調“注冊”。