[quote=YvGa][quote=fabiocsi]Sérgio,
No seu exemplo acima, nao estou vendo muita diferença entre seu Repository e um DAO.
Se eu falei besteira, poderia me explicar a diferença?[/quote]
Corrijam-me se eu estiver errado, mas a diferenca de um DAO e um Repository eh a finalidade de cada um. Eles podem ser implementados exatamente da mesma maneira, mas o intuito eh diferente.
[/quote]
Não. O intuito é diferente e a implementação é diferente. Não faz sentido criar uma factory de repositorios pelo simples motivo que a lógica contida neles é a logica do negocio. Se as lógicas mudam, os repositórios mudam, não se criam outros.
Enquanto nos DAO a logica é sempre a mesma, é invariante, a implementação é diferente conforme a API real
Ou seja um XMLDAO e um JDBCDAO têm a mesma interface e procuram os mesmos dados , apenas os procuram em lugares distintos e com API distintas. É neste sentido que digo que a logica é invariante.
A logica dos Repositorios pode mudar conforme a lógica do negocio, ou porque contém logica que tem que se modificada ou porque as entidades com que eles trabalham foram modificadas.
DAO é uma coisa plugável. Atrás de um DAOFactory todos os DAO são iguais.
Repositorio não é plugável, ele faz parte do coração da aplicação.
Reaproveitar logica de negocios não é simples, e normalmente não se faz. Logo cada sistema terá seus repositorios proprios.