---
title: "Parametrizar método"
type: "refactoring-technique"
slug: "parameterize-method"
url: "http://localhost:3000/es/parameterize-method.md"
category: "Simplifying Method Calls"
description: "Problema: Varios métodos realizan acciones similares que solo se diferencian en sus valores internos, números u operaciones. Solución: Combina estos métodos utilizando un parámetro que pase el valor especial necesario."
---
# Parametrizar método

> Problema: Varios métodos realizan acciones similares que solo se diferencian en sus valores internos, números u operaciones. Solución: Combina estos métodos utilizando un parámetro que pase el valor especial necesario.

## Problem

Varios métodos realizan acciones similares que solo se diferencian en sus valores internos, números u operaciones.

## Solution

Combina estos métodos utilizando un parámetro que pase el valor especial necesario.

## Why Refactor

Si tienes métodos similares, probablemente tengas código duplicado, con todas las consecuencias que ello conlleva.

Es más, si necesitas añadir otra versión de esta funcionalidad, tendrás que crear otro método. En lugar de eso, podrías simplemente ejecutar el método existente con un parámetro diferente.

## How to Refactor

1. Crea un nuevo método con un parámetro y traslada a él el código que es igual para todas las clases, aplicando [Extraer método](/es/extract-method). Ten en cuenta que a veces solo una parte concreta de los métodos es en realidad idéntica. En ese caso, la refactorización consiste en extraer únicamente la parte común a un nuevo método.
2. En el código del nuevo método, sustituye el valor especial o diferente por un parámetro.
3. Para cada método antiguo, busca los lugares donde se le llama y sustituye esas llamadas por llamadas al nuevo método que incluyan un parámetro. A continuación, elimina el método antiguo.
## Relations

**Similar techniques**

- [Extraer método](/es/extract-method.md)
- [Formar Método Plantilla](/es/form-template-method.md)

**Opposite refactorings**

- [Reemplazar Parámetro con Métodos Explícitos](/es/replace-parameter-with-explicit-methods.md)

**Eliminates smells**

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

