Стиль программирования: стоит ли возвращаться раньше, если условие охраны не выполняется?
Одна вещь, которую я иногда задавался вопросом: какой стиль лучше из двух, показанных ниже (если есть)? Лучше ли возвращаться немедленно, если условие охраны не было выполнено, или вы должны делать другие вещи, только если условие охраныявляется довольный?
В качестве аргумента, пожалуйста, предположим, что условие охраны - это простой тест, который возвращает логическое значение, например, проверка на наличие элемента в коллекции, а не на что-то, что может повлиять на поток управления путем генерирования исключения. Также предположим, что методы / функции достаточно короткие, чтобы не требовать прокрутки редактора.
// 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;
}