Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Diferenças entre o padrão DAO e o padrão repository

Olá,

Qual a diferença entre os padrões DAO e repository? Ora vejo projetos com DAO, ora com repository. Tanto faz ou dependendo de algum cenário, é aconselhável utilizar um ou outro?

2 respostas
solução!

Ivan,

O objetivo é o mesmo: abstração para persistência de dados.

Mas existem diferenças para seu uso:

  • Repository tem vinculado à regra de negócio e possui associação ao agregado dos seus objetos de negócio e retorna objetos de domínio que representam esses dados. Geralmente tem uma interface que abstrai uma coleção.
class ProvaRepository {
     public List<Aluno> AlunosAvaliados();
     public List<Professor> TodosProfessores();

     public List<Prova> TodasProvas();
     public List<Prova> ProvasNaoRevisada();
}
  • DAO tem um escopo mais limitado na captura e persistência dos dados de um objeto DTO (Data Transfer Object) que representa um registro da base de dados.
    class ProvaDAO {
       public List<DTOProva> TodasProvas();
       public List<DTOProva> ProvasNaoRevisada();
    }
    class PessoaDAO {
       public List<DTOPessoa> AlunosAvaliados();
       public List<DTOPessoa> TodosProfessores();
    }

Obrigado Douglas, excelente explicação, obrigado!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software