Весняний РОЗПРОДАЖ

Спуск поля

Також відомий як: Push Down Field

Проблема

Поле використовується тільки в деяких підкласах.

Рішення

Перемістіть поле в ці підкласи.

До
Push Down Field - Before
Після
Push Down Field - After

Причини рефакторингу

Поле, яке планували зробити універсальним для усіх класів, по факту, використовується тільки в деяких підкласах. Така ситуація може виникнути, коли плановані фічи так і не були реалізовані.

Крім того, така ситуація може виникнути після відокремлення (чи видалення) частини функціональності з ієрархії класів.

Переваги

  • Покращує зв’язність усередині класів. Поле знаходиться там, де воно реально використовується.

  • При переміщенні в декілька підкласів одночасно, з’являється можливість розвивати поля незалежно одне від одного. Правда, така дія створює дублювання коду, тому варто спускати поля, тільки якщо ви дійсно маєте намір використовувати їх по-різному.

Порядок рефакторингу

  1. Оголосіть поле в усіх необхідних підкласах.

  2. Видаліть поле з суперкласу.