Очень часто, когда вы кодируете, у вас есть флаг, указывающий две возможности, например:
CACHING_AUTHORIZED
CACHING_UNAUTHORIZED
или
CACHING_ON
CACHING_OFF
Если вы затем используете логическое значение для хранения этого, очень частоон просто «читает странно»:
CACHING_ON = false;
CACHING_OFF = true;
или
CACHING_ON = true;
CACHING_OFF = false;
Одна из возможностей - написать:
CACHING
А затем просто кодировать с помощью:
if ( CACHING )
или
if ( !CACHING )
, но иногда вам действительно нужны формы ON и OFF.
Дело в том, что оно не меняетсяМногое из того, что вы выбираете, просто не имеет особого смысла, независимо от того, как вы его поворачиваете.
Это не совсем не похоже на проблему «получателя» для логического значения, которое, безусловно, подвержено большому количествугорячие споры (следует ли нам использовать isConditionTrue или getIsCondition или isCondition или getCondition или просто условие или conditionTrue и т. д .: Я немного шутливый, но точка зрения остаётся, и по этому поводу и по теме cточно не близко).
Мой вопрос другой: видно, что ни
CACHING_ON = false;
CACHING_OFF = true;
, ни
CACHING_ON = true;
CACHING_OFF = false;
не имеет смысла, разве мы не должны просто избавитьсялогического и сделайте:
CACHING_ON = 1;
CACHING_OFF = 2;
Конечно, вы теряете логическое значение, но по крайней мере «1» и «2» не могут принести путаницу.
Моя точка зрения такова: использование логического и true / false очень часто сбивает с толку, потому что мы смешиваем две разные вещи: английский и логику, и они просто, ну, вообще не смешиваются.
Это плохо дляиспользовать int здесь, даже если есть только две возможности?