天天看點

了解"IOC(控制反轉)和DI(依賴注入)"

今天中午吃飯的時候,和同僚閑聊,聊着聊着聊到了IOC(控制反轉)和DI(依賴注入),感覺各有各的說法:

今天下班了,就來重新總結一下IOC(控制反轉)和DI(依賴注入),以便于了解:

1. 首先來說一說IOC(控制反轉)

說這個控制反轉按字分為兩段來說:

  • 第一段就來說說控制

    在傳統的java ee項目設計中,我們都是在對象内部使用new進行建立對象,是程式主動去建立依賴對象,但是在IOC中都是使用IOC容器來建立這些對象,控制這些對象,那麼控制了什麼呢,它主要是控制了外面資源的擷取

  • 第二段就來說說反轉

    首先它說是反轉,我們都知道有反必有正,那麼正轉有是什麼呢,所謂正轉,就是傳統應用程式是由我們程式猿手動的在對象中主動控制,直接擷取依賴對象,這就是正轉,反轉則是:由IOC(容器)幫我們查找注入依賴對象,對象被動的接受依賴對象,反轉則是這樣的,那麼反轉了什麼,隻是依賴對象的擷取被反轉了

2.再來說一說DI(依賴注入)

DI:元件之間依賴關系由容器在運作期決定,即由容器動态的将某個依賴關系注入到元件之中

就以 “依賴注入” 這幾個字,深入了解一下:

  • 誰依賴誰:應用程式依賴于IOC容器
  • 為什麼依賴:應用程式需要IOC容器來提供對象需要的資源
  • 誰注入誰:IOC容器注入應該程式依賴的對象
  • 注入了什麼:注入了依賴對象所需要的資源

繼續閱讀