Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Dúvida sobre vários Repositorys dentro de um Service

Minha dúvida é quanto a termos o PetRepository e TutorRepository dentro do AdocaoService. A melhor prática não seria termos chamado estas interfaces dentro de PetService e TutorService respectivamente e então chamar PetService e TutorService dentro de AdocaoService?

1 resposta
solução!

Olá Lorenzo!

Sua dúvida é bastante pertinente e reflete uma preocupação com a organização e a manutenção do código. Em geral, a prática de injetar diretamente os repositórios dentro de um serviço específico, como AdocaoService, pode ser aceitável, especialmente quando você precisa acessar dados diretamente para implementar a lógica de negócio, como no caso que você mencionou.

No entanto, a ideia de encapsular a lógica de acesso aos dados dentro de serviços específicos, como PetService e TutorService, pode trazer alguns benefícios. Isso inclui a centralização da lógica de manipulação de dados de cada entidade em um único lugar, o que pode facilitar a manutenção e a reutilização do código. Além disso, isso pode ajudar a manter o princípio da responsabilidade única, onde cada classe ou módulo tem uma única razão para mudar.

Por exemplo, se você tem um PetService que encapsula toda a lógica relacionada a pets, ele pode ter métodos como findPetById() ou isPetAdopted(), que podem ser usados por AdocaoService sem precisar conhecer os detalhes de como os dados dos pets são acessados ou manipulados. Isso pode tornar o AdocaoService mais focado na lógica de adoção em si, em vez de se preocupar com os detalhes de como obter ou manipular dados de pets ou tutores.

Dito isso, a escolha entre injetar diretamente os repositórios ou usar serviços intermediários pode depender do tamanho e da complexidade do projeto, bem como das preferências da equipe de desenvolvimento. Em projetos menores, pode ser mais simples e direto injetar os repositórios diretamente. Em projetos maiores, a abordagem de usar serviços intermediários pode ajudar a manter o código mais organizado e sustentável a longo prazo.

Espero ter ajudado e bons estudos!