Операторы switch.
У вас есть сложный оператор switch или последовательность if-ов.
##Признаки и симптомы
У вас есть сложный оператор switch или последовательность 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);
}
}##Причины проблемы
Одним из очевидных признаков объектно-ориентированного кода служит сравнительно редкое использование операторов типа switch или case. Часто один и тот же блок switch оказывается разбросанным по разным местам программы. При добавлении в него нового варианта приходится искать все эти блоки switch и модифицировать их.
Как правило, заметив блок switch, следует подумать о полиморфизме.
##Лечение
##Результат
- Улучшает организацию кода.
