---
title: "Parametrizar Método"
type: "refactoring-technique"
slug: "parameterize-method"
url: "http://localhost:3000/pt-br/parameterize-method.md"
category: "Simplifying Method Calls"
description: "Problema: Múltiplos métodos realizam ações semelhantes que diferem apenas em seus valores internos, números ou operações. Solução: Combine esses métodos usando um parâmetro que passará o valor especial necessário."
---
# Parametrizar Método

> Problema: Múltiplos métodos realizam ações semelhantes que diferem apenas em seus valores internos, números ou operações. Solução: Combine esses métodos usando um parâmetro que passará o valor especial necessário.

## Problem

Múltiplos métodos realizam ações semelhantes que diferem apenas em seus valores internos, números ou operações.

## Solution

Combine esses métodos usando um parâmetro que passará o valor especial necessário.

## Why Refactor

Se você tem métodos semelhantes, provavelmente tem código duplicado, com todas as consequências que isso acarreta.

Além disso, se você precisar adicionar mais uma versão dessa funcionalidade, terá que criar mais um método. Em vez disso, você poderia simplesmente executar o método existente com um parâmetro diferente.

## How to Refactor

1. Crie um novo método com um parâmetro e mova para ele o código que é igual para todas as classes, aplicando [Extrair Método](/pt-br/extract-method). Observe que às vezes apenas uma determinada parte dos métodos é realmente igual. Nesse caso, a refatoração consiste em extrair apenas a parte igual para um novo método.
2. No código do novo método, substitua o valor especial/diferente por um parâmetro.
3. Para cada método antigo, encontre os lugares onde ele é chamado, substituindo essas chamadas por chamadas ao novo método que incluem um parâmetro. Em seguida, exclua o método antigo.
## Relations

**Similar techniques**

- [Extrair Método](/pt-br/extract-method.md)
- [Formar Método Template](/pt-br/form-template-method.md)

**Opposite refactorings**

- [Substituir Parâmetro por Métodos Explícitos](/pt-br/replace-parameter-with-explicit-methods.md)

**Eliminates smells**

- [Código Duplicado](/pt-br/smells/duplicate-code.md)

