---
title: "Adicionar Parâmetro"
type: "refactoring-technique"
slug: "add-parameter"
url: "http://localhost:3000/pt-br/add-parameter.md"
category: "Simplifying Method Calls"
description: "Problema: Um método não tem dados suficientes para realizar certas ações. Solução: Crie um novo parâmetro para passar os dados necessários."
---
# Adicionar Parâmetro

> Problema: Um método não tem dados suficientes para realizar certas ações. Solução: Crie um novo parâmetro para passar os dados necessários.

## Problem

Um método não tem dados suficientes para realizar certas ações.

## Solution

Crie um novo parâmetro para passar os dados necessários.

## Why Refactor

Você precisa fazer alterações em um método e essas alterações exigem adicionar informações ou dados que antes não estavam disponíveis para o método.

## Benefits

* A escolha aqui é entre adicionar um novo parâmetro e adicionar um novo campo privado que contenha os dados necessários ao método. Um parâmetro é preferível quando você precisa de dados ocasionais ou que mudam com frequência e que não faz sentido manter em um objeto o tempo todo. Nesse caso, a refatoração valerá a pena. Caso contrário, adicione um campo privado e preencha-o com os dados necessários antes de chamar o método.

## How to Refactor

1. Verifique se o método está definido em uma superclasse ou subclasse. Se o método estiver presente nelas, você precisará repetir todos os passos nessas classes também.
2. O passo a seguir é fundamental para manter seu programa funcional durante o processo de refatoração. Crie um novo método copiando o antigo e adicione a ele o parâmetro necessário. Substitua o código do método antigo por uma chamada ao novo método. Você pode atribuir qualquer valor ao novo parâmetro (como `null` para objetos ou zero para números).
3. Encontre todas as referências ao método antigo e substitua-as por referências ao novo método.
4. Exclua o método antigo. A exclusão não é possível se o método antigo fizer parte da interface pública. Nesse caso, marque o método antigo como obsoleto (deprecated).
## Relations

**Helps you do**

- [Introduzir Objeto de Parâmetro](/pt-br/introduce-parameter-object.md)

**Similar techniques**

- [Renomear Método](/pt-br/rename-method.md)

**Opposite refactorings**

- [Remover Parâmetro](/pt-br/remove-parameter.md)

