控制反轉(Inversion of Control,縮寫爲IoC),是面向對象編程中的一種設計原則,能夠用來減低計算機代碼之間的耦合度。其中最多見的方式叫作依賴注入(Dependency Injection,簡稱DI),還有一種方式叫「依賴查找」(Dependency Lookup)。經過控制反轉,對象在被建立的時候,由一個調控系統內全部對象的外界實體將其所依賴的對象的引用傳遞給它。也能夠說,依賴被注入到對象中。--來自百度百科編程
控制反轉更像是一種編程思想,主要是爲了下降代碼之間的耦合度,理解控制反轉首先要弄清楚兩點:1.什麼是控制,控制了什麼,誰控制了誰;2.什麼是反轉,哪些東西反轉了。spa
IoC就比如是一家婚姻介紹所,A要去找對象只須要把要求告訴婚姻介紹所,他須要什麼樣的女生,好比身高168,體重100,長頭髮,大眼睛,身材一級棒。而婚姻介紹所就根據A的要求去尋找合適的對象而後介紹給B(查找和注入),而後A和B就開始互相瞭解(獲取資源、數據)。設計