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

Рефакторинг Спуск поля

Проблема

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

Рішення

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

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

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

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

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

Переваги

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

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

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

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

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

Замучились читати?

Збігайте за подушкою, в нас тут контенту на 7 годин читання.

Або спробуйте наш новий інтерактивний курсу. Він набагато цікавіший за банальний тест.

Дізнатися більше...