Olá Jhoni, tudo bem?
Sua sugestão é bastante interessante e pode ser uma boa solução para esse caso específico. Ao utilizar uma classe abstrata com a implementação do método validarSenhaCifrada
, você pode garantir que todas as classes que a estenderem terão essa funcionalidade já implementada. Isso pode economizar tempo e esforço na implementação de novas classes que utilizem essa interface. Porém, transformar a interface em uma classe abstrata pode limitar a flexibilidade do sistema, já que não permitiria que outras implementações diferentes da validação de senha fossem criadas sem precisar sobrescrever o método. É uma boa prática separar as responsabilidades em classes diferentes e manter uma interface clara entre elas, o que é facilitado com o uso de interfaces. No caso específico da validação de senha, pode ser interessante criar uma classe de validação separada, que implemente a lógica de validação de senha e use a interface CifradorDeSenha para gerar e validar as senhas cifradas.
De qualquer forma, é sempre importante avaliar cada situação de forma cuidadosa e escolher a solução mais adequada para o problema em questão.
Espero ter ajudado e bons estudos!