是否可以公开不可变对象的状态?
最近遇到了不可变对象的概念,我想知道控制对状态的访问的最佳实践。尽管我大脑中面向对象的部分使我想在看到公众成员时畏缩在恐惧中,但我没有看到这样的事情的技术问题:
public class Foo {
public final int x;
public final int y;
public Foo( int x, int y) {
this.x = x;
this.y = y;
}
}
我会觉得将字段声明为字段并为每个字段提供 getter 方法会更舒服,但是当状态显式只读时,这似乎过于复杂。private
提供对不可变对象状态的访问的最佳做法是什么?