即使访问本地状态,始终使用访问器方法是最佳做法吗?

Jim*_*mmy 9 java

考虑以下课程:

public class Person 
{
private Integer age;

// Standard Accessors
public Integer getAge() {
    return age;
}

public void setAge(Integer age) {
    this.age = age;
}

public String getAgeAsTextString()
{
    if (this.age == 20)
    {
        return "Twenty";
    }
    return "Unknown";
}
}
Run Code Online (Sandbox Code Playgroud)

我只有1个整数和2个访问器.如果我想创建一个实用程序方法,将对象的状态作为String返回,那么最好将类变量引用为this.age或应该使用getAge()

是否有最佳实践或是由于开发人员的压制?

Boz*_*zho 8

我会说它取决于开发人员的自由裁量权.

我稍微喜欢使用getter方法.如果你有一个类层次结构,最好通过受保护的getter公开内部状态.


And*_*ite 7

要看.对于访问者什么都不做的小型快速课程,我想说直接使用字段.对于访问者和setter可能有副作用的较大类,我会说使用访问器.

在Android平台上,Android文档似乎同意.在某些情况下,它们甚至可以推荐包级别保护.请参阅http://developer.android.com/guide/practices/design/performance.html中标题为"避免内部Getter/Setters"和"使用内部类的包范围"的部分.

这完全取决于环境,代码的大小,以及是否存在代码维护原因的商定"标准".只知道有一些微小的性能差异,但最终由开发人员/团队决定.