2012-01-30 66 views
0

試圖瞭解的東西,我不知道怎麼形容,因爲我不明白它:(插件架構動物園例如

比方說,我正在做一個動物園應用程序,我想賣不同的動物對於動物園我想​​象一下,像下面這樣的IAnimal接口:

public interface IAnimal 
{ 
    string Talk { get; set; } 
} 

,現在我要創建一個貓項目,併爲狗

public class Cat : IAnimal 
{ 
... 
} 

項目比方說,我給AWA y動物園應用程序和用戶打開它,代碼看起來像檢查這個用戶有什麼動物購買?

+0

您需要確定您的Zoo應用程序應該知道哪些程序集(項目)(無論是掃描目錄還是顯式配置)。一旦你這樣做了,你將最終得到在找到的程序集中找到的動物類型列表。 – 2012-01-30 01:21:45

回答

0

這是使用Inversion of Control模式的Dependency Injection的主要情況。 StructureMap是一個開源項目,允許您將依賴注入到您的應用程序中。它允許你說:「在這個程序集中,找到特定接口的所有實現,並允許我創建任何這些實現​​的實例」。這種鬆散耦合也使得單元測試方案更簡單。

2

根據所需的可插拔性,可能需要調查MEF,文檔中包含一個示例計算器應用程序,該應用程序應該有所幫助。