Abstração da Camada do Modelo

2 respostas
Miltex

Blz, pessoal !

A algum tempo estou trabalhando num projeto, e estou pretendendo utilizar o EclipseLink como provedor de acesso ao BD.

Inicialmente eu estava disposto a utilizar o padrão DAO, mas depois de ler algumas posts e tals… eu me deparei com uma frase
que me fez pensar um pouco.
A fase era mais ou menos assim…

“Se a proposta de um Framework ORM é abstrair a camada de persistência por que utilizar o padrão DAO.”

Eu fiquei pensando…, e ainda não encontrei resposta. se alguém puder ajudar… vou me sentir grato.

Faz sentido utilizar DAO quando se utiliza um Framework ORM, tipo o Eclipselink ou Hibernate ???
:?:
Seria mais prudente utilizar DAO somente com projetos que utilizam JDBC ???
No caso do JDBC o padrão DAO cria uma abstração na camada de persistência, mas com o framework ORM ele por si só já cria esta abstração.

Como seria isto ?

Obrigado!

2 Respostas

Hebert_Coelho

Para mim faz todo sentido manter o DAO.

Eu vejo o DAO como uma abstração da persistência. Se um dia você for trocar o JPA por outra tecnologia, bastaria alterar o DAO. E se você estiver utilizando o DAO genérico, o impacto será menor ainda.

Agora sem o dao, o EntityManager teria que estar espalhando pelos Facades/BOs. Desse modo você teria que sair arrancando tudo.

Mas eu vejo isso como gosto.

Eu prefiro separar os papeis, deixa o Facade/BO controlar a regra de negócio e o DAO/Repository cuidar da parte de persistência. [=

Miltex

blz, Hebert.

tem como vc da uma explicada mais sobre está frase:

“Eu prefiro separar os papeis, deixa o Facade/BO controlar a regra de negócio e o DAO/Repository cuidar da parte de persistência. [=”

O que é ??? e como funciona ??? Facade/BO e DAO/Repository

são padrões de projetos ??? eu ainda estou aprendendo…

No meu caso o EM vai estar no contexto da aplicação não de um servidor de app.

Criado 11 de outubro de 2012
Ultima resposta 11 de out. de 2012
Respostas 2
Participantes 2