Недавно взглянув на концепцию неизменяемых объектов, я хотел бы узнать лучшие практики для контроля доступа к государству. Несмотря на то, что объектно-ориентированная часть моего мозга заставляет меня хотеть сдержать страх перед глазами публичных членов, я не вижу технических проблем с чем-то вроде этого:
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 для каждого, но это кажется слишком сложным, когда состояние явно открыто.
Какова наилучшая практика для обеспечения доступа к состоянию неизменяемого объекта?