Стиль программирования: стоит ли возвращаться раньше, если условие охраны не выполняется?

Одна вещь, которую я иногда задавался вопросом: какой стиль лучше из двух, показанных ниже (если есть)? Лучше ли возвращаться немедленно, если условие охраны не было выполнено, или вы должны делать другие вещи, только если условие охраныявляется довольный?

В качестве аргумента, пожалуйста, предположим, что условие охраны - это простой тест, который возвращает логическое значение, например, проверка на наличие элемента в коллекции, а не на что-то, что может повлиять на поток управления путем генерирования исключения. Также предположим, что методы / функции достаточно короткие, чтобы не требовать прокрутки редактора.

// 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;
}

Ответы на вопрос(12)

Ваш ответ на вопрос