Можно ли выставлять состояние неизменяемого объекта?

Познакомившись с концепцией неизменяемых объектов в последнее время, я хотел бы узнать лучшие практики для контроля доступа к государству. Несмотря на то, что объектно-ориентированная часть моего мозга заставляет меня хотеть дрожать от страха при виде публичных участников, я не вижу никаких технических проблем с чем-то вроде этого:

public class Foo {
    public final int x;
    public final int y;

    public Foo( int x, int y) {
        this.x = x;
        this.y = y;
    }
}

Мне было бы удобнее объявить поля какprivate и предоставление методов получения для каждого, но это кажется слишком сложным, когда состояние явно доступно только для чтения.

Какова наилучшая практика для предоставления доступа к состоянию неизменяемого объекта?

Ответы на вопрос(13)

Ваш ответ на вопрос