Logotipo de ConstructiCat
CodeBust.
Explorar la sección ▾

Sentencias switch.

Tienes un operador switch complejo o una secuencia de sentencias if.

##Signos y síntomas

Tienes un operador switch complejo o una secuencia de sentencias if.

double pay(Employee e) {
  switch (e.type) {
    case "engineer": return e.salary;
    case "manager": return e.salary + e.bonus;
    case "intern": return e.salary / 2;
    default: throw new IllegalArgumentException(e.type);
  }
}

##Causas del problema

El uso relativamente infrecuente de los operadores switch y case es uno de los rasgos distintivos del código orientado a objetos. A menudo, el código de un único switch puede estar disperso en diferentes lugares del programa. Cuando se añade una nueva condición, tienes que encontrar todo el código switch y modificarlo.

Como regla general, cuando veas un switch deberías pensar en polimorfismo.

##Tratamiento

##Beneficios

  • Mejor organización del código.