Comunicação entre as Camadas

Olá professor, como deve funcionar a comunicação entre as camadas, exemplo:
Tenho ServiceA e ServiceB, também tenho RepositoryA e RepositoryB.
Se dentro do ServiceA eu preciso de dados que estão no RepositoryB, o que é o correto ?
Injetar o RepositoryB e os métodos do próprio ServiceA acessa diretamente o RepositoryB ou injeto o ServiceB no ServiceA e acesso os métodos do ServiceB para acessar os dados do RepositoryB ?
Olá, tudo bem?
1 - Se dentro do ServiceA eu preciso de dados que estão no RepositoryB, o que é o correto ?
Sem problemas, você pode injetar o repositório B no Service A, a relação não precisa ser de 1:1 entre Service e Repositório. Tenho projetos que precisei injetar mais de um repositório no service.
Não acho uma boa um service pegar dados do outro, porque se um mudar qualquer regra, pode quebrar recursos em cadeia.

E a relação do controller e do service, também não precisa ser 1:1 ?
Posso utilizar mais de um Service em um controller ?

Até pode sim, mas também dependendo o caso, o mesmo controller está servindo para propósitos diferentes, talvez neste caso, seria mais interessante criar outros controllers, e evitar controllers que usam muitos services;

Precisa estar logado para conseguir responder a este ticket!
Clique Aqui Para Entrar!