Friend spotlight!
Whimsical Animations course
Friend spotlight!
NEW Whimsical Animations course
Friend spotlight! NEW Whimsical Animations course
huge discount only this week
Friend spotlight! Want to make your project stand out? NEW Whimsical Animations course huge discount only this week

Спуск поля

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

Проблема

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

Рішення

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

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

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

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

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

Переваги

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

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

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

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

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