Repository ou DAO? Devo deixar de utilizar o DAO?

10/05/2017

0

Recentemente ouvi falar no padrão Repository, mas até agora não vi muitos exemplos de implementações com esse padrão. Ele está sendo utilizado de fato em muitos projetos ou isso continua sendo um espaço ocupado quase que totalmente pelo DAO?
Augusto Santos

Augusto Santos

Responder

Posts

13/05/2017

Marcio Souza

Repository e DAO são padrões diferentes, mas que acabam de alguma forma se cruzando. Muitas vezes quando se implementa um DAO se está usando também os conceitos de Repository para acessar esse DAO.

O DAO está diretamente ligado a infra-estrutura. Ele conhece o banco de dados, as tabelas, as colunas ou o mapeamento se você usa ORM. É o DAO que vai interagir com o banco de dados e executar as operações de insert, update, select ou delete.

O Repository é uma interface que não sabe nada da infra-estrutura. Ele não conhece o banco de dados. O que ele conhece é o domínio da aplicação. Você usa o Resopitory para acessar o DAO, o DAO te devolve os dados de uma consulta e o Repository se torna um "repositório de domínio".

O padrão Repository tem o objetivo de dar apoio ao domínio (modelo) fornecendo persistência ou não. Ao contrário do DAO, que é um objeto de infra-estrutura da aplicação e faz parte da camada de persistência. O Repository faz parte do modelo de domínio que é parte da camada de negócios. O Repository inclusive não precisa apenas ser usado em acesso a dados que venham de uma base de dados, podem servir para outros tipos de operações.

Uma explicação bem interessante sobre o Repository está nesse blog - http://www.javabuilding.com/academy/patterns/repository.html -
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar