---
title: "Удаление параметра"
type: "refactoring-technique"
slug: "remove-parameter"
url: "http://localhost:3000/ru/remove-parameter.md"
category: "Упрощение вызовов методов"
description: "Проблема: Параметр не используется в теле метода. Решение: Удалите неиспользуемый параметр."
---
# Удаление параметра

> Проблема: Параметр не используется в теле метода. Решение: Удалите неиспользуемый параметр.

## Problem

Параметр не используется в теле метода.

## Solution

Удалите неиспользуемый параметр.

## Why Refactor

Каждый параметр в вызове метода заставляет человека, пишущего код метода, размышлять о том, какая информация может оказаться в этом параметре. И если параметр потом вовсе не используется в теле метода, значит, весь этот мыслительный процесс уходит впустую.

Кроме того, дополнительные параметры — это ещё и лишний код к выполнению.

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

## Benefits

* Метод должен содержать только действительно необходимые параметры.

## How to Refactor

1. Проверьте, не определён ли метод в суперклассе или подклассе. Если так, используется ли там параметр? Если в какой-то из реализаций параметр используется, воздержитесь от рефакторинга.
2. Следующий шаг важен, чтобы сохранить работоспособность программы во время рефакторинга. Итак, создайте новый метод, скопировав старый, и удалите из него требуемый параметр. Замените код старого метода вызовом нового метода.
3. Найдите все обращения к старому методу и замените их обращениями к новому методу.
4. Удалите старый метод. Этот шаг неосуществим, если старый метод является частью публичного интерфейса. В этом случае, старый метод нужно пометить как устаревший (`deprecated`).
## Relations

**Helps you do**

- [Замена параметра вызовом метода](/ru/replace-parameter-with-method-call.md)

**Similar techniques**

- [Переименование метода](/ru/rename-method.md)

**Opposite refactorings**

- [Добавление параметра](/ru/add-parameter.md)

**Eliminates smells**

- [Теоретическая общность](/ru/smells/speculative-generality.md)

