Глянь мій новий курс по Git! Привіт! Глянь мій новий курс по Git! Привіт! Глянь мій новий курс по Git на GitByBit.com! Привіт! Хочеш класно освіжити Git? Глянь мій новий курс на GitByBit.com!

Спуск поля

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

Проблема

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

Рішення

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

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

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

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

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

Переваги

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

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

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

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

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