Bom dia, alguem sabe me explicar a necessidade da camada DAO. Quando deveria utilizar ?
Bom dia, alguem sabe me explicar a necessidade da camada DAO. Quando deveria utilizar ?
Bom dia Felipe, tudo certo?
O padrão DAO pode ser utilizado quando você quiser separar a parte de negócio e regras de uma classe de como esses dados são acessados em um banco de dados ou outro sistema de persistência.
Digamos que somos desenvolvedores de um sistema para uma escola que utiliza um banco de dados que tem uma tabela Alunos
que guarda informações como Nome
, Matrícula
e Faltas
.
Ao invés de fazer com que os outros desenvolvedores utilizem queries do nosso banco de dados e precisem conhecer como esses dados são armazenados no sistema, podemos criar uma interface que abstrai e implementa vários métodos para resgatar e acessar essa informação, como por exemplo:
Ter um método que retorna uma lista de alunos:
const alunos = AlunoDAO.getAlunosMatriculados();
O conceito de DAO pode acabar se confundindo com o conceito de um ORM, mas o DAO é um conceito mais abrangente e genérico. Você pode tentar mentalizar como se um controller
único deste curso de Node fosse um DAO para aquele objeto em específico. Caso queira, encontrei algumas discussões e conteúdos extras do assunto na Wikipedia, no Stack Overflow e no Reddit.
Espero ter ajudado. Bons estudos!