2.3 KiB
2.3 KiB
#рефакторинг #запахи_кода
В длинных списках параметров трудно разобраться. Они зачастую противоречивы и сложны в применении, а кроме того, их приходится вечно изменять по мере возникновения необходимости в новых данных.
Признаки
- Количество параметров метода больше трёх-четырёх
Причины появления
- После объединения нескольких вариантов алгоритмов в одном методе. В этом случае может быть создан длинный список параметров, контролирующих то, какая из вариаций будет выполнена и как
- Попытка уменьшить связанность между классами
Рефакторинги
- Замена параметра запросом (Replace Parameter with Query)
- Сохранение всего объекта (Preserve Whole Object)
- Введение объекта параметра (Introduce Parameter Object)
- Удаление аргумента-флага (Remove Flag Argument)
- Объединение функций в класс (Combine Functions into Class)
Результат
- Повышает читабельность кода, уменьшает его размер
- В процессе рефакторинга может обнаружится дублирование кода, которое ранее было незаметно.
Не стоит трогать, если...
- Не стоит избавляться от параметров, если при этом появляется нежелательная связанность между классами.

