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