Imagine um sistema onde você tem classes de Serviço, Entidades de Negócio, Value Objects e Repositórios.
Num sistema com estas características, as Entidades de Negócio pdem acessar Repositórios diretamente para fazer buscas por outras entidades? Ou será que as dependências entre as entidades devem ser orquestrades/injetadas pelos Serviços?
No sistema onde trabalho, usamos uma solução híbrida. Ter as Entidades de Negócio acessando repositórios me dá uma sensação de que há algo de estranho no ar, mas a verdade é que isso facilita tremendamente a vida e seria praticamente impossível refatorar o sistema para remover esta dependência. Meu lado purista me diz que está errado, mas meu lado pragmático me diz que está certo. Talvez, seja apenas implicância minha e não há problema nenhum em ter esta dependência.
O que vocês acham? Essa é uma dúvida arquitetural que sempre tive. Não sei se existe uma resposta única ou definitiva, mas gostaria de ouvir a opinião de vocês.
[quote=domingos.neto]Imagine um sistema onde você tem classes de Serviço, Entidades de Negócio, Value Objects e Repositórios.
Num sistema com estas características, as Entidades de Negócio pdem acessar Repositórios diretamente para fazer buscas por outras entidades?
[/quote]
podem. É para isso mesmo que os repositorios servem. Claro que “directamente” não significa “o repositorios é uma classe com métodos estáticos”, significa “a cada entidade estão associados vários repositorios”.
Não.
Se ha alguma injeção automática isso é conttrolado pela aplicação não pelo dominio.
Não ha nada de estranho em que as entidades usem os repositorios. O que é estranho é que elas usem os seus proprios repositorios para se peristir. Essa actividade de edição é que deve - sim - ser controlada por serviços.
[quote=sergiotaborda]
O que é estranho é que elas usem os seus proprios repositorios para se peristir. Essa actividade de edição é que deve - sim - ser controlada por serviços.[/quote]