У меня возникла проблема, как это с одним приложением, я начинаю делать следующее:
- Определение основных классов для наиболее общей логики в коде.
- В каждой форме перемещайте код, который обрабатывает бизнес-логику внутри событий, как функции / процедуры в этой форме.
- Затем переместите эти функции / процедуры в эти классы как статические методы .
- Наконец, создайте только необходимый код внутри форм, таких как интерфейс проверки и вызовы классов.
- Для глобальных переменных старайтесь опускать столько, сколько можете, и просто передавайте значения в качестве параметров методам.
Я использовал статические методы, потому что вам проще удалить код из событий и просто вызывать их, не требуя создания / освобождения объекта для каждой операции. Оригинальный дизайн не был разработан для отделения форм от кода бизнес-логики.
Конечное приложение не было полным OO, но по крайней мере было проще протестировать методы, не требуя взаимодействия с формами и событиями, как раньше.
Иногда вы чувствуете, что если вы перепроектируете приложение с нуля, будет легче, чем вносить изменения, чтобы сделать его действительно оригинальным.