I'm working on a migration tool. I have two different assemblies one is Mapping
that is used to collect data and store it in predefined types (say Customer
, Product
etc).
That assembly is instanced in the Engine using reflection and the data is migrated to a destination platform (on a pretty hard coded way, we're having methods like MigrateCustomers
and such).
I'd like to rewrite the application so it's more generic, allowing clients to (for example) extend our Product class, and inject logic into both assemblies.
If it were only one I would make an interface, add Execute()
method and it would be simple. (something like command pattern).
The problem is I need two make sure both assemblies use the same "plugin" - one part defines logic for getting the data the second for importing the data.
Is there a pattern that deals with similar issues?