Spring源碼之IoC原理

什麼是Ioc

控制反轉(Inversion of Control,縮寫爲IoC),是面向對象編程中的一種設計原則,能夠用來減低計算機代碼之間的耦合度。其中最多見的方式叫作依賴注入(Dependency Injection,簡稱DI),還有一種方式叫「依賴查找」(Dependency Lookup)。經過控制反轉,對象在被建立的時候,由一個調控系統內全部對象的外界實體將其所依賴的對象的引用傳遞給它。也能夠說,依賴被注入到對象中。--來自百度百科編程

控制反轉更像是一種編程思想,主要是爲了下降代碼之間的耦合度,理解控制反轉首先要弄清楚兩點:1.什麼是控制,控制了什麼,誰控制了誰;2.什麼是反轉,哪些東西反轉了。spa

  1. 控制:傳統的建立對象的方法一般是經過new一個對象出來,那被控制的就是new出來的對象;而IoC是經過IoC專門的容器去建立對象,該對象的控制權掌握在了IoC容器手中,控制的對象也由單一的對象形式變成了多樣的形式,例如對象和文件。
  2. 反轉:傳統的建立對象的方式,是主動在建立的對象中獲取依賴對象的內容,這種方式被稱爲正轉;而反轉則是經過IoC容器去尋找和注入依賴對象,對象只是被動的接受依賴對象。

示例

IoC就比如是一家婚姻介紹所,A要去找對象只須要把要求告訴婚姻介紹所,他須要什麼樣的女生,好比身高168,體重100,長頭髮,大眼睛,身材一級棒。而婚姻介紹所就根據A的要求去尋找合適的對象而後介紹給B(查找和注入),而後A和B就開始互相瞭解(獲取資源、數據)。設計

相關文章
相關標籤/搜索