我知道有很多人建议这个惯例:
boolean deleted;
boolean isDeleted();
但是当你想命名一个布尔值来表示用户可以离开时,你会怎么做?
boolean userCanLeave
boolean isUserCanLeave()
boolean canUserLeave
boolean isCanUserLeave()
boolean userLeave
boolean isUserLeave()
boolean userLeave
boolean canUserLeave()
我不确定是否有任何标准,或者您只是选择您认为最具可读性的标准?这是getter方法名称映射的变量,这里很有趣。
答案 0 :(得分:9)
您应该使用更好的变量名称,例如keyPath
。
然后,将getter方法用作userAllowedToLeave
。
这至少使用了“is”getter,听起来语法也正确。
答案 1 :(得分:2)
使用这样的布尔语几乎总是一个糟糕而混乱的想法。如果您希望使代码易于理解且易于维护,则应使用枚举来表示状态,可能使用强转换规则(FSM)。
假设你的离开'概念取决于用户是否已完成任务或任务集,然后您可能
public enum UserState { inProgress, complete }
然后,您可以在您的用户类上实现方法leave
,如下所示:
public void leave() { if (state == UserState.complete) ... }
其中state
是上面定义的枚举的私有实例。然后,您可以将问题isLeaveable重新设置为getState,如果需要这样的话。当然,您还需要一个complete()
方法,它可以适当地改变状态,并在用户完成任务时调用它。
答案 2 :(得分:1)
许多框架仍然使用方法调用来设置bean的值,这些方法需要符合某种模式:
isXXX
或getXXX
所以我尽力坚持这一点,即使我没有使用框架来创建bean的实例,或者这些框架使用反射直接绑定到变量。我仍然认为这是一种很好的做法。
那么getUserCanLeave()
?或isUserLeavable()
?