Tudo bem expor o estado de um objeto imutável?
Tendo me deparado com o conceito de objetos imutáveis recentemente, gostaria de conhecer as melhores práticas para controlar o acesso ao estado. Mesmo que a parte orientada a objetos do meu cérebro me faça querer me encolher de medo ao ver os membros do público, não vejo problemas técnicos com algo assim:
public class Foo {
public final int x;
public final int y;
public Foo( int x, int y) {
this.x = x;
this.y = y;
}
}
Eu me sentiria mais confortável declarando os campos comoprivate
e fornecendo métodos getter para cada um, mas isso parece excessivamente complexo quando o estado é explicitamente somente leitura.
Qual é a melhor prática para fornecer acesso ao estado de um objeto imutável?