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
É, 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.