Pessoal,
Comecei agora meus estudos sobre Domain Driven Design, e algumas coisas não ficaram claras pra mim. Certo que ainda não terminei de ler o livro, mas de qualquer forma vou postar algumas questões.
-
Qual o real objetivo de Factories ? Se eu tenho um objeto que não é um Root de um Aggregate, qual seria a real função de uma factory ? No meu entendimento eu só criaria uma Factory para criar Entities complexos, com vários relacionamentos e de difícil criação. Mas na maioria dos casos, não consigo visualizar um objeto assim.
-
Os repositorios devem pedir a uma factory(quando ela existir), para criar as instâncias dos Entities necessários ? No caso de não utilizar um framework de persistência, os DAOs poderiam fazer o papel dos repositórios ?
-
Pelo que entendi, a dependência entre os Entities e os repositórios, se dão somente no sentido contrário, ex:
RepositorioDeNotasFiscais ---------------------------> NotaFiscal.
Neste caso, como implementar o método NotaFiscal.ObterTotalDaNota, assumindo que este método percorra minha coleção de ItensDeNotaFiscal para fazer o Cálculo ? Estou perguntando isto pq, eu teria que, ao pedir para o meu Repositório.obterNotaFiscal (1532), já carregar automaticamente todos os seus itens, este entendimento é correto ?
Mais uma dúvida, se os objetos de domínio não conhecem seus Repositórios, como implementar um Lazy Load ?
Pessoal desculpem o tamanho do post, mas é que realmente estou meio perdido, se meu entendimento sobre os temas acima estiver incorreto, por favor me falem.
Obrigado,
Guto Costa