DAO: Vantagens e Desvantagens

Pessoas(rsrs), estou realizando um trabalho e estou com a seguinte pergunta:

  1. Qual a vantagem de utilizarmos o padrão DAO em nossos programas Java? E qual a desvantagem?

R: Vantagens: Padronização de projetos e de regras de persistências, facilidade em utilização de outros meios de persistência.
Desvantagem: seguir rigorosamente os padrões da interface estabelecida, aumento de classes do projeto…

Vc’s podem me ajudar em mais alguns exemplos?

Obrigado!

Ninguém? :cry:

A principal vantagem do DAO é ter um local onde todo o acesso a dados(JDBC, XML, etc…) será concentrado. Ao invés de ter várias classes que manipulam dados espalhadas pela aplicação.

As vantagens de se utilizar DAOs compensam largamente as desvantagens…

Hum… obrigado pessoal…

E as desvantagens? Alguém sabe mais alguma?

E tem?

Hummm… só se for pelo fato de acrescentar mais uma camada, aumentar o nível de complexidade, ficar um pouco mais pesado por ter que instanciar mais classes.

Bem resta saber se isto são desvantagens… e que eu não considero muito.

:okok:

[quote=“marcossousa”]Hummm… só se for pelo fato de acrescentar mais uma camada, aumentar o nível de complexidade, ficar um pouco mais pesado por ter que instanciar mais classes.

Bem resta saber se isto são desvantagens… e que eu não considero muito.

:okok:[/quote]

É verdade. Se colocarmos na balança, as vantagens pesam mais.

.

Senhores se vcs estudarem (Caso nunca tenham visto), Abstracoes, Generics, Extends , interfaces e Reflection (JAVA). Vcs vão ver que é possivel fazer 70 % de um sistemas tudo de forma generica.

A questão do DAO é a seguinte centralizar toda a regra em um só ponto para todo da equipe saber onde está o SQL que faz tal coisa.

Agora classe de modelo acessando diretamente banco vc tem que apelar para o padrão singleton (para obter a conexao)o que acarreta inumeros problemas, isso pode parecer viavel em projeto minusculo mas em projeto grandes com aquitetura é um desatre total que leva o projeto ao caos.

O DAO simplesmente abstrai a conexão JDBC ao a conexão com o datasource. Voce nao precisa se preocupar com a implementacao do banco de dados