Em um contexto de qualquer aplicação simples JSF, teremos nossos managed-beans mapeados (seja em escopo de requisição ou sessão ou enfim).
No meu projeto, estou implementando o padrão DAO para acesso ao banco de dados, ou seja, para um bean Pessoa (que está mapeada como managed-bean no faces-config), tenho PessoaDAO.
A dúvida vem no momento de construir um data table usando um List: qual seria a melhor arquitetura/maneira/forma para proporcionar o retorno de um objeto colletion de managed-beans para uma página jsf?
A apostila que estava seguindo propõe criar um outro bean, chamado PessoaLista, que é basicamente uma classe que possui um List, e está mapeada como managed-bean, assim poderia ser referenciado na tela, e na declaração do construtor, poderia chamar método da DAO que pretendo usar para preencher esta lista, mas não acho isso nada elegante.
Outra ideia que tive era sobre mapear a própria classe DAO como um managed-bean (desconsiderando detalhes como qual seria o escopo), mas acho que poderia isso quebrar a implementação da arquitetura do padrão DAO (está implementado juntamente com o padrão factory) (ainda não tenho certeza sobre essa afirmação, não pensei tanto assim ainda rsrs).
Conclusão: Alguém sabe uma boa maneira de se arquitetar classes de projeto JSF + DAO?
Obrigado.


