Вернуть непонятное логическое выражение - рефакторинг - PullRequest
0 голосов
/ 01 апреля 2020

Я написал метод:

private boolean checkIfCanBeSent(Product product, Type type, TypeToSend typeToSend) {
    boolean isDisabled = isStatusDisabled(product, type);
    boolean isManual = isManual(typeToSend);

    return !(isDisabled && !isManual);
}

, он работает должным образом, однако во время рецензирования получил комментарий о том, что это выражение возврата сбивает с толку. Как улучшить и сделать его более читабельным?

1 Ответ

4 голосов
/ 01 апреля 2020

Три предложения.

  • Примените закон де Моргана, чтобы дать эквивалентное утверждение.
  • Понять «включено» легче, чем «не отключить».
  • Не назначайте переменной то же имя, что и у метода.

Итак

boolean isEnabled = ! isStatusDisabled(product, type);
boolean isManualType = isManual(typeToSend);

return isEnabled || isManualType;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...