2010-05-14 85 views
2

我嘗試過Unity和MEF以及普通的舊版本。我有點困惑,到底什麼時候需要使用這些「模式」。如果使用新版本更簡單並滿足我的需求,爲什麼我會選擇使用MEF或Unity?何時使用MEF

換句話說,什麼需要證明使用MEF或Unity?

+1

你在這裏問兩個問題:爲什麼使用Unity,爲什麼使用MEF。 Unity是一個依賴注入框架。 MEF適用於插件和擴展等。 – 2010-05-15 00:54:24

回答

4

MEF允許在應用程序內隔離子系統。如果您需要經常更改子系統實現,或者甚至在運行時更改,則此隔離功能很有用。 MEF負責加載子系統的細節,並將所有提供者連接到適當的用戶。這是通過連接一組相互不瞭解的自包含模塊來構建應用程序的理想向前邁出的巨大一步。

傳統應用程序中的重要部分代碼致力於簡單地將事物粘合在一起 - 粘合代碼。 MEF大大減少了對膠水代碼的需求。

如果您只是構建一個對象,以便您可以打開一個文件或顯示一個對話框,這不是MEF的用途。如果您想編寫使用通用xyz服務的代碼,但不想硬編碼對供應商a或供應商b實現的依賴關係,那可能是MEF候選人。