Альтернативой подходу «Словарь / файл конфигурации» будет
1) для определения интерфейса для каждого из редакторов транзакций.
2) В вашей сборке EXE или UI каждая форма должна зарегистрироваться в сборке, которая создает отдельную транзакцию.
3) Класс, контролирующий регистрацию, должен быть одноэлементным, чтобы у вас не было нескольких экземпляров форм, плавающих вокруг.
3) Когда создается отдельная транзакция, она извлекает правильную переменную формы из объекта регистрации и присваивает ей внутреннюю переменную.
4) Когда вызывается метод Edit, он просто использует метод Show внутреннего метода для запуска цепочки вызовов, что приведет к отображению этого редактора транзакций.
Это устраняет необходимость в конфигурационных файлах и словарях. Он продолжает отделять пользовательский интерфейс от объекта. Кроме того, вам не нужно никаких переключателей
Недостатком является необходимость написания интерфейса для каждой формы в дополнение к самой форме.
Если у вас много разных типов редакторов (десятков), тогда в этом случае я рекомендую вам использовать шаблон команд
У вас есть основная команда, в которой содержится диктонарная рекомендация Джонатана. Эти команды по очереди будут использовать этот диктор для выполнения одной из ряда других команд, которые вызывают правильную форму с правильным объектом. Формы продолжают отделяться от самого объекта. Формы находятся в сборке команд. Кроме того, вам не нужно обновлять EXE, чтобы добавить другой редактор только в сборку Command. Наконец, помещая вещи в Command, вы можете гораздо проще реализовать Undo / Redo. (Реализовать неисполнение и выполнение)