Ниже приведены мои классы фабрики по импорту. Если я хочу добавить новые ImportTypes, просто добавьте новый тип в перечисления ImportTypes и добавьте случай в заводский класс, и он отлично работает.Расширяемый шаблон дизайна завода
Мой вопрос в том, как я могу сделать его более независимым и простым в расширении. Допустим, пользователь хочет добавить новый ImportType, вместо того, чтобы менять код, он пишет свою собственную DLL и реализует интерфейс ... любые хорошие предложения/идеи?
типы Импорт
enum ImportTypes
{
DefaultImport,
C2CImport
}
Импорт интерфейс
public interface IImportService
{
void Import(Argument arguments, ImportDefinition config);
}
Импорт завод
class ImportFactory
{
public static IImportService GetService(ImportTypes type)
{
switch (type)
{
case ImportTypes.DefaultImport:
return new DefaultImportService();
case ImportTypes.C2CImport:
return new C2CImportService();
}
return null;
}
}
Тест
IImportService docImportService = ImportFactory.GetService(ImportTypes.DefaultImport);