Також відомий як Parameterize Method

Рефакторинг Параметризація методу

Проблема

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

Рішення

Об'єднайте усі ці методи в один з параметром, в який передаватиметься значення, що відрізняється.
До
Parameterize Method - Before
Після
Parameterize Method - After

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

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

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

Недоліки

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

  • Крім того, будьте обережні, виділяючи в параметр перемикач якоїсь функціональності. Надалі це може привести до створення великого умовного оператора, який потрібно буде лікувати за допомогою заміни параметра набором спеціалізованих методів.

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

  1. Створіть новий метод з параметром і помістіть в нього спільний для усіх методів код, застосовуючи відокремлення методу.

  2. Значення, що відрізняється, замініть на параметр в коді нового методу.

  3. Для кожного старого методу знайдіть місця, де він викликається, і поміняйте його виклики на виклики нового методу з параметром. Після чого старий метод можна видалити.

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

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

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

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

Живий приклад

Перший раз у нас? Нічого страшного!

У нас тут все просто – цей інтерактивний приклад дуже схожий на відео (хоча й виглядає набагато крутіше).

  1. Натискаєте велику кнопку "Почати", а далі слідуєте усім підказкам.
  2. Ви можете перемотувати програвання, використовуючи стрілки зліва.
  3. Окрім того, ви можете подивитися різницю між стартовим та отриманим кодом, натиснувши кнопку ока ().
  4. Кнопка компіляції та тестування () дає змогу перевірити код на наявність помилок.