Також відомий як Add Parameter

Рефакторинг Додавання параметра

Проблема

Методу не вистачає даних для здійснення якихось дій.

Рішення

Створіть новий параметр, щоб передати ці дані.
До
Add Parameter - Before
Після
Add Parameter - After

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

Вам необхідно внести якісь зміни в метод. Ці зміни вимагають додаткової інформації або даних, які раніше в метод не подавалися.

Переваги

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

Недоліки

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

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

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

  1. Перевірте, чи не є метод вже визначеним в суперкласі або підкласі. Якщо метод в них вже присутній, треба буде повторити усі кроки також в цих класах.

  2. Наступний крок важливий для того, щоб зберегти працездатність програми під час рефакторингу. Отже, створіть новий метод, скопіювавши старий, і додайте в нього необхідний параметр. Замініть код старого методу викликом нового методу. Ви можете підставити будь-яке значення в новий параметр (наприклад null для об'єктів або нуль для чисел).

  3. Знайдіть усі звернення до старого методу і замініть їх зверненнями до нового методу.

  4. Видаліть старий метод. Цей крок стає неможливим, якщо старий метод є частиною публічного інтерфейсу. В цьому випадку старий метод треба помітити як застарілий (deprecated).

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

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

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

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

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

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

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

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