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

Підйом поля

Також відомий як: Pull Up Field

Проблема

Два класи мають одне і те ж поле.

Рішення

Перемістіть поле в суперклас, прибравши його з підкласів.

До
Pull Up Field - Before
Після
Pull Up Field - After

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

Підкласи розвивалися незалежно один від одного. Це привело до створення однакових (чи дуже схожих) полів і методів.

Переваги

  • Вбиває дублювання полів в підкласах.

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

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

  1. Перевірте, чи обидва поля використовуються для однакових потреб в підкласах.

  2. Якщо поля мають різні назви, дайте їм спільне ім’я і замініть усі звернення до полів в існуючому коді.

  3. Створіть поле з таким же ім’ям в суперкласі. Зверніть увагу на те, що якщо поля були приватні (private), поле в суперкласі має бути захищеним (protected).

  4. Видаліть поля з підкласів.

  5. Можливо, має сенс використати самоінкапсуляцію поля для нового поля, щоби приховати його за методами доступу.