Padrões de Projeto: Boas Práticas - Qual modelo de Dao deve ser adotado num projeto web?

Boa tarde pessoal,

Surgiu aqui no trabalho, uma questão sobre as melhores práticas de utilização do Dao.

Alguns autores de blogs e alguns materiais didáticos de empresas que capacitam em java utilizam Dao’s específicos com Interfaces + Impl, outros DaoGenerico + Impl’s específicas, e outros ainda utilizam tudo isso que eu falei junto.

A questão é: qual a melhor maneira? A mais simples (como usar um daogenerico e outros específicos se forem necessários) ou existe algum padrão internacional a ser adotado para isto?

Agradeço a colaboração dos GUJEIROS.

Aqui na empresa usamos o Hibernate Generic DAO Framework para todos os projetos que necessitam de Jpa/Hibernate e nunca tivemos maiores problemas, uma api simples e bem completa.

Usando um framework genérico de mercado creio que seria a maneira mais simples e melhor.

[quote=rodrigo_corinthians]Aqui na empresa usamos o Hibernate Generic DAO Framework para todos os projetos que necessitam de Jpa/Hibernate e nunca tivemos maiores problemas, uma api simples e bem completa.

Usando um framework genérico de mercado creio que seria a maneira mais simples e melhor.[/quote]

Fui olhar o projeto e de cara tem um aviso dizendo que o cara não esta mais envolvido com o projeto desde 2011.

[quote=Kleber-rr]Boa tarde pessoal,

Surgiu aqui no trabalho, uma questão sobre as melhores práticas de utilização do Dao.

Alguns autores de blogs e alguns materiais didáticos de empresas que capacitam em java utilizam Dao’s específicos com Interfaces + Impl, outros DaoGenerico + Impl’s específicas, e outros ainda utilizam tudo isso que eu falei junto.

A questão é: qual a melhor maneira? A mais simples (como usar um daogenerico e outros específicos se forem necessários) ou existe algum padrão internacional a ser adotado para isto?

Agradeço a colaboração dos GUJEIROS.

[/quote]

Simplesmente não use Dao. Use O EntityManager do JPA ou o Hibernate diretamente. Se vc quiser abstrair estes senhores use uma única interface seguindo o padrão DomainStore. É só isso que precisa.