我知道很多人建议这样做:
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,而且听起来语法也正确。
许多框架仍然使用方法调用来设置bean的值,并且这些方法需要符合特定的模式:
isXXX
或getXXX
所以我尽量坚持这一点,即使我不使用框架来创建bean的实例,或者如果这些框架使用反射直接绑定到变量。我仍然认为这是很好的练习。
那么getUserCanLeave()
?还是isUserLeavable()
?
像这样使用布尔值几乎总是一个糟糕且令人困惑的想法。如果你想让你的代码易于理解和维护,你应该使用枚举来表示状态,也许使用强转换规则(FSM)。
假设您的"leave"概念是基于用户是否完成了一个任务或一组任务,那么您可能有
public enum UserState { inProgress, complete }
你可以在你的用户类上实现一个方法leave
,像这样:
public void leave() { if (state == UserState.complete) ... }
,其中state
是上面定义的枚举的私有实例。然后,如果需要的话,您可以将问题isLeaveable重新构造为getState。当然,您还需要一个complete()
方法来适当地更改状态,并在用户完成任务时调用该方法。