ConstructiCat Logo
CodeBust.
Browse section ▾

Consolidar fragmentos condicionales duplicados.

Problem

Se encuentra código idéntico en todas las ramas de un condicional.

Solution

Mueve el código fuera del condicional.

##Example

Before
if (isSpecialDeal()) {
  total = price * 0.95;
  send();
}
else {
  total = price * 0.98;
  send();
}
After
if (isSpecialDeal()) {
  total = price * 0.95;
}
else {
  total = price * 0.98;
}
send();

##Why Refactor

Se encuentra código duplicado dentro de todas las ramas de un condicional, a menudo como resultado de la evolución del código dentro de las ramas del condicional. El desarrollo en equipo puede ser un factor que contribuya a esto.

##Benefits

  • Eliminación de código duplicado.

##How to Refactor

  1. Si el código duplicado está al principio de las ramas del condicional, mueve el código a un lugar antes del condicional.

  2. Si el código se ejecuta al final de las ramas, colócalo después del condicional.

  3. Si el código duplicado está situado de forma aleatoria dentro de las ramas, primero intenta mover el código al principio o al final de la rama, dependiendo de si altera el resultado del código posterior.

  4. Si resulta apropiado y el código duplicado tiene más de una línea, prueba a usar Extraer método.