理論入門7788 參見 夏昕的spring開發入門.pdf
何謂控制反轉(IoC = Inversion of Control) ,何謂依賴注入(DI =Dependency Injection);IoC,用白話來講,就是由容器控制程序之間的關系,而非傳統實現中,由程序代碼直接操控。這也就是所謂“控制反轉”的概念所在:控制權由應用代碼中轉到了外部容器,控制權的轉移,是所謂反轉。
正在業界為IoC爭吵不休時, 大師級人物Martin Fowler也站出來發話, 以一篇經典文章 《Inversion of Control Containers and the Dependency Injection pattern》為IoC正名,至此,IoC又獲得了一個新的名字: “依賴注入 (Dependency Injection) ”。
這就是筆者的主要工作裝備,IBM T40筆記本電腦一臺、USB硬盤和U盤各一只。想必大家在日常
工作中也有類似的一套行頭。
這與依賴注入有什么關系?
三個設備都有一個共同點,都支持 USB 接口。當我們需要將數據復制到外圍存儲設備時,可以根據情況,選擇是保存在U盤還是USB硬盤,下面的操作大家也都輕車熟路,無非接通USB接口,然后在資源瀏覽器中將選定的文件拖放到指定的盤符. 這樣的操作在過去幾年中每天都在我們身邊發生,而這也正是所謂依賴注入的一個典型案例,上面稱之為“古老”想必也不為過分。
再看上例中,筆記本電腦與外圍存儲設備通過預先指定的一個接口(USB)相連,對于筆記本而言,只是將用戶指定的數據發送到USB接口,而這些數據何去從,則由當前接入的USB設備決定。在USB設備加載之前,筆記本不可能預料用戶將在USB接口上接入何種設備,只有USB設備接入之后,這種設備之間的依賴關系才開始形成 對應上面關于依賴注入機制的描述,在運行時(系統開機,USB 設備加載)由容器(運行在筆記本中的Windows操作系統)將依賴關系(筆記本依賴USB設備進行數據存?。┳⑷氲浇M件中(Windows文件訪問組件) 。 這就是依賴注入模式在現實世界中的一個版本。
(以上引用至夏昕的spring開發入門.很好的解釋了什么是依賴注入)