Pessoal,
hoje a gente vai conversar sobre dois padrões muito importantes pra quem está estudando arquitetura de software: o DAO (Data Access Object) e o Repository.
Ambos têm a mesma missão: separar o acesso a dados da lógica de negócio.
Ou seja, deixar o código mais organizado, mais limpo e mais fácil de testar.
Mas apesar de parecerem parecidos (e muita gente achar que são a mesma coisa), eles têm diferenças de intenção e contexto que vale muito a pena entender.
Vamos com calma, como sempre.
O padrão DAO é, basicamente, uma camada que encapsula o acesso aos dados.
Em vez de sair colocando comandos SQL soltos no meio do código, a gente cria uma classe responsável só por isso.
Essa classe tem métodos como:
salvarAluno(Aluno aluno)
buscarPorId(int id)
removerAluno(int id)
Ou seja: operações do tipo CRUD (Create, Read, Update, Delete).
A grande vantagem é que a regra de negócio não precisa saber como os dados estão sendo armazenados. Quem se preocupa com banco de dados, driver JDBC, SQL ou qualquer coisa assim... é o DAO.