Я пытаюсь реорганизовать большое тесно связанное приложение и сделать его более удобным и гибким.
У меня есть много модульных тестов, поэтому я надеюсь провести рефакторинг шаг за шагом.
Какие шаблоны проектирования и рефакторинга следует рассмотреть для реализации/применения для выполнения этой задачи?
Я могу думать о некоторых:
Также не стесняйтесь делиться своим собственным опытом и лучшими практиками такого рефакторинга.
ОБНОВЛЕНИЕ
Я выполняю этот рефакторинг по причинам, изложенным в этом вопросе. По сути, я не могу реализовать систему плагинов без извлечения пары интерфейсов, и эти интерфейсы сильно связаны, что требует разделения приложения на более чем 40 DLL для простой компиляции без проблем с циклическими ссылками.