1
resposta

[Dúvida] Solid com Spring boot Classe Service

Eu tenho uma dúvida em relação ao solid, por exemplo, o princípio da responsabilidade única fala que uma classe deve ter somente uma responsabilidade. Então eu deveria criar um service para cada operação? por exemplo: salvar, buscar todos, buscar por id, deletar, editar. Além disso, eu deveria converter o DTO em entity em outra classe tbm?

1 resposta

Olá, João! Sua dúvida é bastante pertinente e comum quando estamos lidando com os princípios SOLID.

De acordo com o Princípio da Responsabilidade Única (Single Responsibility Principle - SRP), uma classe deve ter apenas uma razão para mudar. Isso não significa necessariamente que cada operação (como salvar, buscar, deletar, etc.) deva ter seu próprio serviço. Em vez disso, significa que cada serviço deve ter uma responsabilidade bem definida.

Por exemplo, você pode ter um serviço UserService que é responsável por todas as operações relacionadas ao usuário. Este serviço pode ter métodos para salvar um usuário, buscar um usuário, deletar um usuário, etc. Cada um desses métodos é uma operação distinta, mas todas elas estão relacionadas à responsabilidade única do serviço: lidar com operações de usuário.

Em relação à conversão entre DTOs e entidades, é uma boa prática separar essa lógica em uma classe diferente, muitas vezes chamada de Mapper ou Converter. Isso mantém a lógica de conversão separada da lógica de negócios, tornando seu código mais limpo e mais fácil de manter.

Espero ter ajudado e bons estudos!