Довгий список параметрів
Симптоми і ознаки
Кількість параметрів методу більше трьох-чотирьох.
Причини появи
Довгий список параметрів може з’явитися після об’єднання декількох варіантів алгоритмів в одному методі. В цьому випадку може бути створений довгий список параметрів, контролюючих те, яка з варіацій буде виконана і як.
Поява довгого списку параметрів також може бути пов’язана із спробою програміста зменшити зв’язаність між класами. Наприклад, код створення конкретних об’єктів, потрібних в методі, перенесли з самого методу в код виклику цього методу, а створені об’єкти вирішили передавати в метод як параметри. Таким чином, оригінальний клас перестав знати про зв’язки між об’єктами, і зв’язність зменшилася.
Але якщо з’являється потреба в декількох таких об’єктах, для кожного з них знадобиться свій власний параметр, що призводить до розростання списку параметрів.
У довгих списках параметрів важко орієнтуватися, вони стають суперечливими і складними у використанні. Замість довгого списку параметрів метод може використовувати дані свого власного об’єкта. Якщо всіх необхідних даних в поточному об’єкті немає, в якості параметра методу можна передати інший об’єкт, який отримає відсутні дані.
Лікування
-
Якщо дані, які передаються в метод, можна отримати шляхом виклику методу іншого об’єкта, застосовуємо заміну параметра викликом методу. Цей об’єкт може бути розташованим у полі власного класу або переданий як параметр методу.
-
Замість того щоби передавати групу даних, отриманих з іншого об’єкта в якості параметрів, можна передати в метод сам об’єкт, використовуючи передачу всього об’єкта.
-
Якщо є декілька незв’язаних елементів даних, іноді їх можна об’єднати в один об’єкт-параметр, застосувавши для цього заміну параметрів об’єктом.
Виграш
-
Підвищує читабельність коду, зменшує його розмір.
-
В процесі рефакторингу ви зможете виявити дублювання коду, яке раніше було непомітним.
Не варто чіпати, якщо...
- Не варто позбавлятися від параметрів, якщо при цьому з’являється небажана зв’язаність між класами.