IOC叫作控制反轉,能夠理解爲我要作一件事,分爲1,2,3,4這4部,咱們能夠在一個函數實現這四步,控制反轉就是將這個流程體如今框架中。將原來實如今應用程序流程控制轉移到框架中,框架利用一個引擎驅動整個流程的執行。應用程序無需關心該工做流程的細節,他只須要啓動這個引擎便可。可是這個引擎一旦被啓動,框架就會按照預先編排好的流程進行工做,若是應用程序但願整個流程按照本身但願的方式被執行,針對流程的定製通常發生在啓動引擎以前。框架
通常來講框架會以相應的行駛提供一系列的擴展點,應用程序則痛過定義擴展的方式實現對流程某個環節的定製。在引擎被啓動以前,應用程序將所需的擴展註冊到框架中。一旦引擎被正常啓動,這些註冊的擴展會自動參與到整個流程的執行過程當中。函數
提到DI,依賴注入,是IOC的一種重要實現
一個對象的建立每每會涉及到其餘對象的建立,好比一個對象A的成員變量持有着另外一個對象B的引用,這就是依賴,A依賴於B。IOC機制既然負責了對象的建立,那麼這個依賴關係也就必須由IOC容器負責起來。負責的方式就是DI——依賴注入,經過將依賴關係寫入配置文件,而後在建立有依賴關係的對象時,由IOC容器注入依賴的對象,如在建立A時,檢查到有依賴關係,IOC容器就把A依賴的對象B建立後注入到A中(組裝,經過反射機制實現),而後把A返回給對象請求者,完成工做。對象