Подумайте по этому сценарию:
У меня есть приложение c # windows form. Это приложение было одинаковым для всех моих клиентов. Теперь одному из них нужно изменить форму, добавив новое текстовое поле и новую логику.
Я, очевидно, не хочу дублировать свое приложение, и вставка операторов IF с customer-Id для управления логикой может легко привести к коду в стиле спагетти.
Я думаю, что в этой ситуации я могу создать отдельный проект для каждого клиента; Внутри я могу написать собственные формы, реализующие тот же интерфейс, что и форма по умолчанию (и то же самое для логических классов), и я могу попытаться переключить эти dll через файл конфигурации или построить проект с нужной dll клиента (или используя, например, Windsor Castle for DI ).
Это правильный шаблон? Существует по-другому?
обновление
Я пытаюсь перечислить: