ConstructiCat Logo
CodeBust.
Browse section ▾

Preservar el Objeto Completo.

Problem

Obtienes varios valores de un objeto y después los pasas como parámetros a un método.

Solution

En lugar de eso, intenta pasar el objeto completo.

##Example

Before
int low = daysTempRange.getLow();
int high = daysTempRange.getHigh();
boolean withinPlan = plan.withinRange(low, high);
After
boolean withinPlan = plan.withinRange(daysTempRange);

##Why Refactor

El problema es que, cada vez que se llama a tu método, antes hay que llamar a los métodos del futuro objeto parámetro. Si estos métodos o la cantidad de datos que se obtienen para el método cambian, tendrás que localizar cuidadosamente una docena de lugares así en el programa e implementar estos cambios en cada uno de ellos.

Después de aplicar esta técnica de refactorización, el código para obtener todos los datos necesarios estará almacenado en un único lugar: el propio método.

##Benefits

  • En lugar de un revoltijo de parámetros, ves un único objeto con un nombre comprensible.

  • Si el método necesita más datos de un objeto, no tendrás que reescribir todos los lugares donde se usa el método, sino únicamente el interior del propio método.

##How to Refactor

  1. Crea un parámetro en el método para el objeto del que puedes obtener los valores necesarios.

  2. Ahora empieza a eliminar los antiguos parámetros del método uno a uno, sustituyéndolos por llamadas a los métodos correspondientes del objeto parámetro. Prueba el programa después de sustituir cada parámetro.

  3. Elimina el código del getter del objeto parámetro que precedía a la llamada al método.