2010-04-04 76 views
0

控制反轉的優勢在於它將對象從特定的查找機制和它所依賴的對象的實現中分離出來。因此,生產應用和測試可以獲得更大的靈活性。依賴注入機制

這實際上是什麼意思?

+0

迂迴的方式,以避免昂貴的類型轉換,我們應該 – 2010-04-04 04:08:12

回答

0

IoC的一個很好的例子是數據庫模擬。在編寫應用程序時,您可能需要在稍後的某個時間點保留對象以供檢索或使用。那麼,抽象出來的數據庫,你創建一個接口,像這樣的方法:

Interface DbSaver 
+void save(MyObject myObject) 
+MyObject load(String id) 

沒有了IoC,你會有這樣的事情:

DbSaver saver = new DefaultDbSaver(); 

,或者你只是定義的實現和訪問它作爲一個單身(最初爲數據庫操作對象似乎是恰當的):

MyDbSaver saver = MyDbSaver.getInstance(); 

使用IoC,你可以切換DbSaver的實施,甚至沒有RECOM打樁你的應用程序(至少Spring提供了這個)。也就是說,在不更改任何代碼的情況下,您可以選擇使用另一個實現。對於數據庫訪問對象,最常見的做法是創建一個將所有內容存儲在內存中的默認實現。在最終確定數據庫設計,結構或技術時,您可以繼續構建應用程序,而不用擔心數據如何持續存在。你只是在界面中工作。

以這種方式,業務對象與數據庫集成分離開來,具有允許並行開發這兩個塊的巨大優點。

+0

什麼,我得到的是: IOC使它靈活的通過只是改變配置的特定實現特定接口的分配。 因此它使靈活.. 糾正我,如果我得到它錯誤或部分.. // Thanx爲你的答案.. – 2010-04-04 04:19:40

+0

這幾乎是想法,abc! – 2010-04-04 04:57:12