Розбіжні модифікації
«Розбіжні модифікації» схожі на Стрільбу дробом, але насправді є протилежністю цього запаху. «Розбіжні модифікації» мають місце, коли є один клас, в якому робиться багато різних змін, а «Стрільба дробом» — це одна зміна, що зачіпає одночасно багато класів.
Симптоми і ознаки
При внесенні змін до класу доводиться змінювати багато різноманітних методів. Наприклад, для додавання нового виду товару вам буде потрібно змінити методи пошуку, відображення і замовлення товарів.
![](/images/refactoring/content/smells/divergent-change-01.png?id=d62e68e1778d67bf82ff74064c24de33)
Причини появи
Найчастіше поява розбіжних модифікацій є наслідком поганої структурованості програми або програмування методом копіювання-вставки.
Лікування
-
Поведінку класу можна розділити на декілька частин за допомогою відокремлення класу.
-
Якщо різні класи мають однакову поведінку, можливо, слід об’єднати ці класи, використовуючи наслідування (відокремлення суперкласу і відокремлення підкласу).
![](/images/refactoring/content/smells/divergent-change-02.png?id=21b6fd7cba36f123c09497cb8f5a5625)
Виграш
-
Покращує організацію коду.
-
Зменшує дублювання коду.
-
Спрощує його підтримку.