Logotipo do ConstructiCat
CodeBust.
Explorar a seção ▾

Comandos Switch.

Você tem um operador switch complexo ou uma sequência de instruções if.

##Sinais e sintomas

Você tem um operador switch complexo ou uma sequência de instruções 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 do problema

O uso relativamente raro dos operadores switch e case é uma das marcas registradas do código orientado a objetos. Muitas vezes, o código de um único switch pode estar espalhado por diferentes partes do programa. Quando uma nova condição é adicionada, você tem que encontrar todo o código switch e modificá-lo.

Como regra geral, quando você vê switch, deve pensar em polimorfismo.

##Tratamento

##Benefícios

  • Melhor organização do código.