Для работы объектов или функций требуется слишком много аргументов

Проблемы

  • Низкая ремонтопригодность
  • Низкое повторное использование
  • Связь

Решения

  • Найдите взаимосвязь между аргументами
  • Создайте «контекст».
  • Рассмотрите возможность использования паттерна Объект метода.
  • Избегайте «базовых» типов: строк, массивов, целых чисел и т. Д. Думайте об объектах.

Исключения

  • Операции в реальном мире не требуют сплоченных сотрудников.

Образец кода

Неправильный

Правильно

Обнаружение

Большинство линтеров предупреждают, когда список аргументов слишком велик.

Теги

  • Примитивный

Вывод

Свяжите аргументы и сгруппируйте их. Всегда отдавайте предпочтение сопоставлениям реального мира. Найдите в реальном мире, как сгруппировать аргументы в связанные объекты.

Если функция получает слишком много аргументов, некоторые из них могут быть связаны с конструкцией класса. Это тоже дизайнерский запах.

связи



Эта статья является частью серии CodeSmell.