3
respostas

Domain Service pode invocar diretamente a interface de um Repository

Domain Service pode invocar diretamente a interface de um Repository, em vez de passar pela camada de Application, em casos onde há necessidade de aplicar regras de negócio específicas relacionadas ao domínio?

3 respostas

Depende da organização da aplicação, eu já trabalhei em uma aplicação que tinha Arquitetura Limpa + DDD, o fluxo da aplicação pelas camadas eram assim:

controller --> application --> domain service --> repository

o controller não poderia chamar domain service diretamente, precisaria passar por application, mas esse controle de fluxo tinha mais haver com Arquitetura Limpa do que com DDD

Mas uma das práticas do DDD se chama Layered Architecture, que é o conceito de arquitetura em camadas onde a ideia é manter o conhecimento do domínio focado e não espalhado por diferentes componentes da aplicação, como Ui, banco de dados, camada de persistência etc.

DDD estabelece essa prática, mas não determina em que ordem o fluxo deve ocorrer, ou se Domain Service não pode invocar diretamente um Repository... Vai depender da organização em que você está trabalhando...

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

então nessa aplicação você sempre chama o repository na domain service ?

isso Antonio, correto

nessa aplicação que eu trabalhei sim