我正在使用迁移工具。我有两个不同的程序集,一个是Mapping
,用于收集数据并将其存储在预定义的类型中(比如Customer
,Product
等)。
使用反射在Engine中实例化该程序集,并将数据迁移到目标平台(以非常硬编码的方式,我们使用MigrateCustomers
等方法。)
我想重写应用程序,因此它更通用,允许客户端(例如)扩展我们的Product类,并将逻辑注入两个程序集。
如果它只是一个我会创建一个接口,添加Execute()
方法,这将很简单。 (类似于命令模式)。
问题是我需要两个确保两个程序集使用相同的"插件" - 一部分定义了获取数据的逻辑,第二部分用于导入数据。
是否存在处理类似问题的模式?
答案 0 :(得分:1)
处理此问题的模式称为:控制反转(IoC)。您可以参考这些文章了解详细信息:
Managed Extensibility Framework基于IOC,如果你想实现一个小插件框架,你可以按照IoC模式自己做;如果你想要一个有很多功能的框架,你应该使用MEF。