Одна вещь, которую я иногда задавался вопросом: какой стиль лучше из двух, показанных ниже (если есть)? Лучше ли вернуться немедленно, если условие охраны не было выполнено, или вы должны выполнять другие действия, только если условие охраны удовлетворено ?
Ради аргумента, пожалуйста, предположите, что условие охраны - это простой тест, который возвращает логическое значение, такое как проверка, находится ли элемент в коллекции, а не что-то, что может повлиять на поток управления, вызывая исключение , Также предположим, что методы / функции достаточно короткие, чтобы не требовать прокрутки редактора.
// Style 1
public SomeType aMethod() {
SomeType result = null;
if (!guardCondition()) {
return result;
}
doStuffToResult(result);
doMoreStuffToResult(result);
return result;
}
// Style 2
public SomeType aMethod() {
SomeType result = null;
if (guardCondition()) {
doStuffToResult(result);
doMoreStuffToResult(result);
}
return result;
}