[quote=sergiotaborda]
Não precisa de um caso para entender a diferença. É como entender a diferença entre verbo e substantivo; não preciso lhe dar exemplo para explicar a diferença.
Talvez esteja pensando em implementação, que a de um e a de outro são iguais ou semelhantes. Tlv até sejam, mas a sua responsabilidade, o papel que têm no sistema, a frequencia de alteração, a reutilização, e mais importante que isso o principio de design por detrás de cada um é completamente diferente.
Não é porque vc chama DAO a uma classe que ela vira uma implementação de DAO. O mesmo para qq outro padrão.
Eu , particularmente, acho absurdo o exagero nos prefixo e sufixos ( tipo, ClienteVO). Arrisco a dizer que 90% dos objetos sufixados com DAO , hoje em dia, são na realidade implementações do padrão Repositorio. Especialmente se Hibernate ou JPA for usado.
O DAO com regras de negocio inclusas é algo do passado, que só faz sentido com vc trabalha com sistemas legados e codigo esparguete ( sem divisão de responsabilidade)[/quote]
Eu compreendi que DAO é um conceito de persistência e Repository é um conceito de negócio (uma Collection pode ser um repository).
Eu entendo que nomenclatura é algo muito importante.
Mas para mim, a nome DAO e Repository representam coisas com propósitos muito parecidos. Então se eu ver uma objeto do tipo ***DAO e ***Repository em uma classe da camada de negócio, eu sei exatamente para que serve para praticamente a mesma coisa na grande maioria dos casos.
Talvez se o Repository precisar fazer uma regra, validação, processamento, etc, antes de acessar o mecanismo de persistencia valeria ter um repository encapsulando um DAO.
Alguém pode colocar um exemplo de um projeto real? (Não vale projeto da NASA :twisted: )