7

现在我正在创建一个类来保存我的配置,就是这样。我所做的只是存储配置文件中的值。

超过一半的代码是 getter,我想知道实践是仍然拥有 getter 还是直接访问变量。

所以这:

public myClass
{
    public myClass(String name)
    {
        this.name = name;
    }

    final String name;

    public final String getName()
    {
        return name;
    }
}

或者:

public myClass
{
    public myClass(String name)
    {
        this.name = name;
    }

    public final String name;
}

当所有的吸气剂实际上没有做任何事情而是返回变量时,将所有吸气剂都放在那里似乎真的很愚蠢。但有人告诉我,无论如何,在其中放置 getter 是常见的 Java 做法。

4

2 回答 2

13

用 getter 封装数据可以提供几个优点,包括:

  • 您可以将该字段更改为其他一些表示形式,而不会影响调用者。
  • 您可以在 getter 中添加其他代码。
  • 您可以实现一个提供 getter 的接口。
  • 您可以提供对字段的只读访问权限,即使它们不是final.
于 2013-07-15T16:28:52.423 回答
0

我知道的做法是,您可以使用具有不可变类型的公共静态最终字段,例如。但是,我确实将 getter 添加到实例字段System.out

我同意你的观点,但暴露决赛几乎没有害处String。不过要小心可变类型。此外,由于 IDE 中存在内联和代码生成,因此无论是编写代码还是在运行时,getter 的成本往往都很低。

于 2013-07-15T16:29:03.743 回答