天天看點

Java的依賴注入(控制反轉)

兩個主角“依賴注入”和“控制反轉”:

2、英文原稱:依賴注入,dependency injection(di);

   控制反轉,inversion of control(ioc)。

3、作用:削減計算機程式的耦合問題;

5、為什麼叫“依賴注入”:縱觀所有的java應用,它們都是由一些互相協作的對象構成的。我們稱這種互相協作的關系為依賴關系。假如a元件調用了b元件的方法,我們可稱a元件依賴于b元件。系統建立的執行個體供調用者調用,也可以看作是系統将建立的執行個體注入調用者。

6、優點:因為把對象生成放在了xml裡定義,是以當我們需要換一個實作子類将會變成很簡單(一般這樣的對象都是實作于某種接口的),隻要修改xml就可以了,這樣我們甚至可以實作對象的熱插撥(有點象usb接口和scsi硬碟了)。

7、缺點:1)生成一個對象的步驟變複雜了(事實上操作上還是挺簡單的),對于不習慣這種方式的人,會覺得有些别扭和不直覺;

(2)對象生成因為是使用反射程式設計,在效率上有些損耗。但相對于ioc提高的維護性和靈活性來說,這點損耗是微不足道的,除非某對象的生成對效率要求特别高;

(3)缺少ide重構操作的支援,如果在eclipse要對類改名,那麼你還需要去xml檔案裡手工去改了,這似乎是所有xml方式的缺憾所在。

繼續閱讀