Repository ou DAO? Devo deixar de utilizar o DAO?

Java

.NET

10/05/2017

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

Curtidas 0

Respostas

Marcio Souza

Marcio Souza

10/05/2017

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 -
GOSTEI 0
POSTAR