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

Підйом методу

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

Проблема

Підкласи мають методи, які роблять схожу роботу.

Рішення

В цьому випадку треба зробити методи ідентичними, а потім перемістити їх в суперклас.

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

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

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

Переваги

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

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

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

  1. Обстежте схожі методи в суперкласах. Якщо вони не однакові, приведіть їх до одного і того ж виду.

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

  3. Скопіюйте метод в суперклас. Тут ви можете зіткнутися з тим, що код методу використовує поля і методи, які є тільки в підкласах, а тому недоступні в суперкласі. Щоб розв’язати цю проблему, вам треба:

  4. Видаліть методи в підкласах.

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