关于is/has的布尔类属性命名约定的问题

xin*_*ing 5 java naming

我为患者所代表的患者提供这些属性.我想知道命名他们的最佳做法是什么?

  1. 她是否处于哺乳期:布尔
  2. 她怀孕了吗:布尔
  3. 她是否准备怀孕:布尔
  4. 他/她最近是否患有低血糖:布尔值
  5. 他/她是否有并发症:布尔值

首先想到的是将它们命名为:

boolean isInLactationPeriod;
boolean isPregnant;
boolean isPreparingPregnant;
boolean hasSufferedLowBloodGlucoseRecently;
boolean hasComplications;
Run Code Online (Sandbox Code Playgroud)

但是我也遇到过这样的建议:java属性不应该是带有前导的名称/ has,而是将它们留给getter/setter方法,例如

boolean pregnant;
boolean isPregnant() {
    return pregnant;
}
Run Code Online (Sandbox Code Playgroud)

哪一个更好?

Rah*_*thi 5

它可能更基于便利性或基于意见.但你可以使用isPregnant它,因为它或多或少地说清楚.

请参阅Java文档:

8.3.2布尔属性

另外,对于布尔属性,我们允许getter方法匹配模式:

public boolean是();

可以提供这种"是"方法而不是"获取"方法,或者除了"获取"方法之外还可以提供它.在任何一种情况下,如果布尔属性存在"is"方法,那么我们将使用"is"方法来读取属性值.布尔属性的示例可能是:

public boolean isMarsupial(); 
public void setMarsupial(boolean m);
Run Code Online (Sandbox Code Playgroud)