使用两个组件的“插件”类型逻辑

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

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

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

有没有处理类似问题的模式?


处理这个问题的模式称为:控制反转(IoC)。 你可以参考这些文章的细节:

  • 控制容器的反转和依赖注入模式
  • 控制反转与依赖注入
  • 托管扩展性框架基于国际奥委会,如果你想实现一个小插件框架,你可以按照IoC模式做你自己; 如果你想要一个有很多功能的框架,你应该使用MEF。

    链接地址: http://www.djcxy.com/p/82199.html

    上一篇: "Plugin" type logic that uses two assemblies

    下一篇: Design Pattern: Cache and Context