2011-04-19 52 views
1

我正在學習企業模式,正在閱讀this book在IoC中輸入圖案

我剛纔讀第5章,我仍然感到困惑......據我瞭解,國際奧委會應該從其他類中刪除的依賴關係,對不對?又名鬆散耦合。

而且我也看了,這是一件好事,因爲如果你重建你的具體的類,它不會打破上有依賴的對象。

我理解,這意味着,如果我重建集(.dll),它不會要求我重建等項目引用它,是正確的?

但在書中引用它在項目中的樣品,並做了很多事情來得到一個類的實例,這是什麼使我困惑。

我認爲最終的結果會是這樣一個動態加載程序集,並創建裏面具體的類的實例,像MEF。

有人可以解釋我嗎?

+0

這是關於這個問題的好文章:HTTP://馬丁·福勒。 com/bliki/InversionOfControl.html – 2011-04-19 05:23:51

回答

2

IoC不只是爲了消除依賴關係。你的程序集和類沒有緊密耦合。而且您可以在每次需要時更換它們。

但是其中一種主要方法是在運行時改變依賴關係並使用類和對象。您可以要求您的IoC容器爲您提供業務處理程序課程,而且您無需關心將什麼課程返回給您。 IoC容器將決定返回實例的哪個類,並且您可以爲其提供此邏輯。

IOC(DI)刪除緊密耦合的依賴,也有用於創建不同的對象類型,處理程序,業務基礎上每一種情況提供一些邏輯,也沒有必要讓你在運行時關心他們。

IoC in WikiPedia

什麼問題,它試圖解決?

  • 解耦組分和層系統中的
  • 從負責管理它的依賴在不同的環境
  • 交換依賴實現。緩和的成分。
  • 允許通過嘲弄依賴性來測試組件。
  • 提供一種在整個應用程序中共享資源的機制。

優勢

  • 使得它更容易對代碼進行測試。沒有它,你正在測試的代碼很難被隔離,因爲它將與系統的其他部分高度耦合。
  • 開發模塊化系統時很有用。您可以在不需要重新編譯的情況下更換組件。
+0

謝謝...但我仍然沒有看到它的好處...也許我失去了一些東西.. – Carol 2011-04-19 04:48:02

+0

編輯提供一個簡單的列表,但記住,瞭解真實的位置的IoC在你的應用程序中,你應該有一個良好的企業架構和設計經驗。 – 2011-04-19 04:58:25