“插件”类型逻辑,使用两个程序集

时间:2014-03-18 14:57:40

标签: .net design-patterns architecture

我正在使用迁移工具。我有两个不同的程序集,一个是Mapping,用于收集数据并将其存储在预定义的类型中(比如CustomerProduct等)。 使用反射在Engine中实例化该程序集,并将数据迁移到目标平台(以非常硬编码的方式,我们使用MigrateCustomers等方法。)

我想重写应用程序,因此它更通用,允许客户端(例如)扩展我们的Product类,并将逻辑注入两个程序集。 如果它只是一个我会创建一个接口,添加Execute()方法,这将很简单。 (类似于命令模式)。

问题是我需要两个确保两个程序集使用相同的"插件" - 一部分定义了获取数据的逻辑,第二部分用于导入数据。

是否存在处理类似问题的模式?

1 个答案:

答案 0 :(得分:1)

处理此问题的模式称为:控制反转(IoC)。您可以参考这些文章了解详细信息:

  1. Inversion of Control Containers and the Dependency Injection pattern
  2. Inversion of Control vs Dependency Injection
  3. Managed Extensibility Framework基于IOC,如果你想实现一个小插件框架,你可以按照IoC模式自己做;如果你想要一个有很多功能的框架,你应该使用MEF。