---
title: "Añadir Parámetro"
type: "refactoring-technique"
slug: "add-parameter"
url: "http://localhost:3000/es/add-parameter.md"
category: "Simplifying Method Calls"
description: "Problema: Un método no tiene suficientes datos para realizar ciertas acciones. Solución: Crea un nuevo parámetro para pasar los datos necesarios."
---
# Añadir Parámetro

> Problema: Un método no tiene suficientes datos para realizar ciertas acciones. Solución: Crea un nuevo parámetro para pasar los datos necesarios.

## Problem

Un método no tiene suficientes datos para realizar ciertas acciones.

## Solution

Crea un nuevo parámetro para pasar los datos necesarios.

## Why Refactor

Necesitas hacer cambios en un método y estos cambios requieren añadir información o datos que antes no estaban disponibles para el método.

## Benefits

* Aquí la elección está entre añadir un nuevo parámetro y añadir un nuevo campo privado que contenga los datos que necesita el método. Un parámetro es preferible cuando necesitas datos ocasionales o que cambian con frecuencia y que no tiene sentido mantener en un objeto todo el tiempo. En este caso, la refactorización merecerá la pena. De lo contrario, añade un campo privado y rellénalo con los datos necesarios antes de llamar al método.

## How to Refactor

1. Comprueba si el método está definido en una superclase o subclase. Si el método está presente en ellas, tendrás que repetir todos los pasos también en esas clases.
2. El siguiente paso es fundamental para mantener tu programa funcional durante el proceso de refactorización. Crea un nuevo método copiando el antiguo y añádele el parámetro necesario. Sustituye el código del método antiguo por una llamada al nuevo método. Puedes asignar cualquier valor al nuevo parámetro (como `null` para objetos o un cero para números).
3. Encuentra todas las referencias al método antiguo y sustitúyelas por referencias al nuevo método.
4. Elimina el método antiguo. La eliminación no es posible si el método antiguo forma parte de la interfaz pública. Si es así, marca el método antiguo como obsoleto (deprecated).
## Relations

**Helps you do**

- [Introducir Objeto Parámetro](/es/introduce-parameter-object.md)

**Similar techniques**

- [Renombrar método](/es/rename-method.md)

**Opposite refactorings**

- [Eliminar parámetro](/es/remove-parameter.md)

