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!