Я пытаюсь следовать рекомендациям дяди Боба по чистому коду и, в частности, держать методы короткими
Я не могу сократить эту логику, хотя:
if (checkCondition()) {addAlert(1);}
else if (checkCondition2()) {addAlert(2);}
else if (checkCondition3()) {addAlert(3);}
else if (checkCondition4()) {addAlert(4);}
Я не могу удалить elses и, таким образом, разделить все это на более мелкие биты, потому что «else» в «else if» помогает производительности - оценка этих условий стоит дорого, и, если я могу избежать оценки условий ниже, вызову одно из первых это правда, я хочу их избежать.
Даже с семантической точки зрения, оценка следующего условия, если выполнено предыдущее, не имеет смысла с точки зрения бизнеса.
редактировать: этот вопрос был определен как возможный дубликат элегантных способов обработки, если (если еще) еще .
Я считаю, что это другой вопрос (вы можете увидеть это также, сравнив ответы на эти вопросы).
- Мой вопрос проверяет, чтобы первое принятое условие закончилось быстро .
- Связанный вопрос пытается создать все условия, чтобы принять что-то. (лучше видно в этом ответе на этот вопрос: https://softwareengineering.stackexchange.com/a/122625/96955 )