Я видел, что это написано в нескольких потоках/комментариях в stackoverflow, что использование switch
- это просто плохой стиль ООП. Лично я не согласен с этим.
Будет много случаев, когда вы не можете добавить код (например, методы) в классы enum
, которые вы хотите включить, потому что вы не контролируете их, возможно, они находятся в стороннем файле jar. Будут и другие случаи, когда включение функции в перечисление само по себе является плохой идеей, поскольку оно нарушает некоторые соображения о разделении внимания или на самом деле является функцией чего-то еще, а также перечисления.
В конце концов, ключи кратки и понятны:
boolean investable;
switch (customer.getCategory()) {
case SUB_PRIME:
case MID_PRIME:
investible = customer.getSavingsAccount().getBalance() > 1e6; break;
case PRIME:
investible = customer.isCeo(); break;
}
Я не защищаю каждое использование switch
, и я не говорю, что это всегда путь. Но заявления, подобные "Switch - запах кода", на мой взгляд, просто неправильны. Кто-нибудь еще согласен?