Dúvida - Objetos imutáveis em JSF

Boa tarde, galera.

Estava estudando sobre imutabilidade de objetos e todas as suas vantagens e tal, e também dei uma lida neste tópico: http://blog.caelum.com.br/nao-aprender-oo-getters-e-setters/,
que fala para não criar getters e setters desnecessariamente. Porém o JSF precisa desses métodos para popular esses objetos. Minha pergunta é, que tipo de abordagem vocês costumam usar para contornar esse “problema”?

Isso não é um problema.

A ideia que você leu aí, é ter uma classe bem desenhada. Ela conhece seus atributos internos e sua implementação, e expõe métodos para que outras classes internas consigam interagir com ela sem que haja um alto acoplamento entre elas.

Agora um ManagedBean do JSF é um pouco diferente. Ele é uma classe que irá pegar os valores da view, tratá-los e enviar para o modelo, e tratar o retorno para mostrar para o usuário.

Na prática ele tem que ter um getter e um setter para cada campo da página, para que ele consiga conversar com ela de maneira mais simples.

Agora quando você vai para o seu modelo, aí tem que pensar melhor na maneira de modelar as suas classes.

Claro que existem boas práticas para o ManagedBean também, mas aí já são outros quinhentos :slight_smile:

É, realmente não é um problema. Eu também pensei na idéia de criar getters e setters no ManagedBean para cada campo da classe, mas além repetir código, só mudaria o problema de lugar.
Você tem algum material sobre boas práticas para o ManagedBean? Valeu.

Você pode ler o livro JSF Eficaz do Hébert Coelho.

E também tem bastante material no blog dele.