Estou tendo dificuldade em identificar meus repositorios…
Todo mundo diz para ver-mos nossos repositorios como coleções, mas na pratica os repositorios substituem todas as nossas coleções?
Ex.:
Etapa 1
Pessoa tem varias casas;
Casa tem varios quartos;
Etapa 2
Pessoa tem uma coleção de casas;
Casa tem uma coleção de quartos;
Etapa 3
Se eu substituo minhas coleções por repositorios fica assim:
Pessoa tem um repositorio de casas;
Casa tem um repositorio de quartos;
Se eu não substituo eu poderia criar somente um repositorio de casa que guarda tando as casas quanto os quartos dela ou eu poderia subir um pouco mais o nivel e criar um repositorio de pessoas que guarda tando as pessoas quanto suas casas quanto os quartos das suas casas. Se eu posso utilizar niveis qual seria um nivel legal para se colocar um repositorio?
[]sss
Repositórios não são coleções, é apenas uma analogia. um repositório é onde seus objetos ficam gaurdados, pra Camada de Negócios não importa como eles ficam guardados mas o dia em que eu rpecisar de um objeto x eu vou lá buscar.
Quanto à granularidade, geralmente cada Entity vai ter um Repository mas um objeto com relação de agregação/composição pode não precisar do seu repositório. lembre também que utilizando uma tecnologia como Hibernate a divisão de repositórios neste sentido é puramente lógica mas se você usar JDBC vai ter que provavelmente criar um DAO para cada objeto persistido. Claro que não necessariamente um DAO vai virar um repositório mas mantêr os DAOs dividindo um grafo de objetos não é trivial.
Você poderia me recomendar um material sobre entity para eu ler? VI que você deu uma breve explicação no seu artigo na revista mundo java mas agora não a tenho em mãos para consultar, se em algum lugar tiver essa materia on-line…
A unica coisa que sei de um entity que utiliza um campo identidade e a igualdade de entity são definidas por esse campo.
infelizmente não tem versão online. Você pode baixar o resumo do livro e Domain Driven Design artigos aqui:
http://domaindrivendesign.org/