2012-01-30 75 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,文档中包含一个示例计算器应用程序,该应用程序应该有所帮助。