Ответ 1
Вы должны использовать лучшее имя переменной, например userAllowedToLeave
.
И затем используйте метод getter как isUserAllowedToLeave()
.
Это, по крайней мере, использует "is" getter и звучит грамматически правильно.
Я знаю, что многие предлагают это соглашение:
boolean deleted;
boolean isDeleted();
Но что вы делаете, когда хотите называть логическое значение, чтобы указать, что пользователь может уйти?
boolean userCanLeave
boolean isUserCanLeave()
boolean canUserLeave
boolean isCanUserLeave()
boolean userLeave
boolean isUserLeave()
boolean userLeave
boolean canUserLeave()
Я не уверен, есть ли какой-либо стандарт для этого или вы просто берете тот, который, по вашему мнению, является наиболее читаемым? Это интересное здесь значение переменной имени метода getter.
Вы должны использовать лучшее имя переменной, например userAllowedToLeave
.
И затем используйте метод getter как isUserAllowedToLeave()
.
Это, по крайней мере, использует "is" getter и звучит грамматически правильно.
Использование таких булей, как это, почти всегда является плохой и запутанной идеей. Если вы хотите сделать код понятным и легко поддерживаемым, вы должны использовать перечисление для представления состояния, возможно, с сильными правилами перехода (FSM).
Предполагая, что ваша концепция "оставить" основана на том, выполнил ли пользователь задачу или набор задач, вы можете иметь
public enum UserState { inProgress, complete }
Затем вы можете реализовать метод leave
в своем пользовательском классе следующим образом:
public void leave() { if (state == UserState.complete) ... }
где state
является частным экземпляром перечисления, определенного выше. Затем вы можете переделать вопрос isLeableable на getState, если такая вещь необходима. Конечно, вам также понадобится метод complete()
, который соответствующим образом изменит состояние и будет вызываться, когда пользователь выполнит свои задачи.
Многие фреймворки по-прежнему используют вызовы методов для установки значений на beans, и эти методы должны соответствовать определенному шаблону:
isXXX
или getXXX
Поэтому я стараюсь придерживаться этого, даже если я не использую фреймворки для создания экземпляров beans, или если эти фреймворки используют отражение, чтобы привязываться прямо к переменным. Я все еще считаю это хорошей практикой.
Итак getUserCanLeave()
? Или isUserLeavable()
?