最近我接触到了不可变对象的概念,我想知道控制状态访问的最佳实践。尽管面向对象的那部分大脑让我想在看到公共成员时退缩,但我认为像这样的东西没有技术问题:
public class Foo {
public final int x;
public final int y;
public Foo( int x, int y) {
this.x = x;
this.y = y;
}
}
我更愿意将字段声明为private
并为每个字段提供getter方法,但当状态明确为只读时,这似乎过于复杂。
对于提供不可变对象的状态访问权限,最佳实践是什么?