Это микрооптимизация и преждевременная оптимизация, которые являются злом. Скорее беспокоиться о читабельности и ремонтопригодности рассматриваемого кода. Если имеется более двух if/else
блоков, склеенных вместе, или его размер непредсказуем, тогда вы можете рассмотреть инструкцию switch
.
Кроме того, вы также можете захватить Полиморфизм . Сначала создайте некоторый интерфейс:
public interface Action {
void execute(String input);
}
И получить все реализации в некоторых Map
. Вы можете сделать это статически или динамически:
Map<String, Action> actions = new HashMap<String, Action>();
Наконец, замените if/else
или switch
на что-то вроде этого (оставляя в стороне тривиальные проверки, такие как нулевые указатели):
actions.get(name).execute(input);
Это может быть медленнее, чем if/else
или switch
, но код, по крайней мере, гораздо лучше обслуживаем.
Когда вы говорите о веб-приложениях, вы можете использовать HttpServletRequest#getPathInfo()
в качестве ключа действия (в конечном итоге написать еще один код, чтобы разделить последнюю часть pathinfo в цикле, пока не будет найдено действие ). Вы можете найти здесь похожие ответы:
Если вы беспокоитесь о производительности веб-приложений Java EE в целом, то эта статья также может оказаться полезной. Есть и другие области, которые дают гораздо больший выигрыш в производительности, чем только (микро) оптимизация необработанного Java-кода.