Можно ли выставлять состояние неизменяемого объекта?
Познакомившись с концепцией неизменяемых объектов в последнее время, я хотел бы узнать лучшие практики для контроля доступа к государству. Несмотря на то, что объектно-ориентированная часть моего мозга заставляет меня хотеть дрожать от страха при виде публичных участников, я не вижу никаких технических проблем с чем-то вроде этого:
public class Foo {
public final int x;
public final int y;
public Foo( int x, int y) {
this.x = x;
this.y = y;
}
}
Мне было бы удобнее объявить поля какprivate
и предоставление методов получения для каждого, но это кажется слишком сложным, когда состояние явно доступно только для чтения.
Какова наилучшая практика для предоставления доступа к состоянию неизменяемого объекта?