Расходящиеся модификации.
При внесении изменений в класс приходится изменять большое число различных методов. Например, для добавления нового вида товара вам нужно изменить методы поиска, отображения и заказа товаров.
##Признаки и симптомы
При внесении изменений в класс приходится изменять большое число различных методов. Например, для добавления нового вида товара вам нужно изменить методы поиска, отображения и заказа товаров.

class Order {
void applyVat2024() {}
void applyVat2025() {}
void formatEuInvoice() {}
void formatUsInvoice() {}
}##Причины проблемы
Часто появление расходящихся модификаций является следствием плохой структурированности программы или программирования методом копирования-вставки.
##Лечение
Приёмы рефакторинга
##Результат
-
Улучшает организацию кода.
-
Уменьшает дублирование кода.
-
Упрощает поддержку.