---
title: "Длинный список параметров"
type: "code-smell"
slug: "long-parameter-list"
url: "http://localhost:3000/ru/smells/long-parameter-list.md"
category: "Раздувальщики"
description: "Количество параметров метода больше трёх-четырёх."
---
# Длинный список параметров

> Количество параметров метода больше трёх-четырёх.

## Signs and Symptoms

Количество параметров метода больше трёх-четырёх.

## Reasons for the Problem

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

Появление длинного списка параметров также может быть связано с попыткой программиста уменьшить связанность между классами. Например, код создания конкретных объектов, нужных в методе, переместили из самого метода в код вызова этого метода, причём созданные объекты передаются в метод как параметры. Таким образом, оригинальный класс перестал знать о связях между объектами, и связность уменьшилась.

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

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

## Payoff

* Повышает читабельность кода, уменьшает его размер.
* В процессе рефакторинга вы можете обнаружить дублирование кода, которое ранее было незаметно.
## Relations

**Treated by**

- [Замена параметра вызовом метода](/ru/replace-parameter-with-method-call.md)
- [Передача всего объекта](/ru/preserve-whole-object.md)
- [Замена параметров объектом](/ru/introduce-parameter-object.md)

