Logotipo de ConstructiCat
CodeBust.
Explorar la sección ▾

Consolidar fragmentos condicionales duplicados.

Problema

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

Solución

Mueve el código fuera del condicional.

##Ejemplo

Antes
if (isSpecialDeal()) {
  total = price * 0.95;
  send();
}
else {
  total = price * 0.98;
  send();
}
Después
if (isSpecialDeal()) {
  total = price * 0.95;
}
else {
  total = price * 0.98;
}
send();

##Por qué refactorizar

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.

##Ventajas

  • Eliminación de código duplicado.

##Cómo refactorizar

  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.