Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Interface com mais de um contrato, o que fazer nesse caso ?

Minha duvida é bem simples, vimos no exemplo anterior que o metodo validar recebe dois parametros "funcionario" & "aumento"

void validar(Funcionario funcionario, BigDecimal aumento)

Vamos supor que minha implementação cresceu e agora tem o metado penalidade

void penalidade(Funcionario funcionario, BigDecimal reducao, String motivo)

Neste caso como funcionaria o conceito Open Closed Principle nesta situação ?

Caso eu crie uma nova classe que implemente o ValidacaoReajuste terei que implementar todos os metados da mesma assim não faz muito sentido. ou esse conceito só e valido para metodos com a mesma assinatura ?

Qual seria a melhor solução e o porque ?

2 respostas
solução!

Só faz sentido vc criar mais um método na interface se todos aqueles que forem implementá-la necessitarem de todas as implementações, caso contrário divida em duas interfaces. É muito comum utilizar Interfaces Funcionais (apenas um método abstrato) justamente para evitar essa implementação de métodos inúteis e tbem pela facilidade de utilizá-los juntamente com lambdas.

Obrigado, ao finalizar o curso percebi que ao aplicar o Dependency Inversion Principle ele meio que respondeu a minha duvida e executou a sua resposta. mas nesse caso não seria necessario extender outra internface apenas dividir as responsabilidades de contrato.

boa dica referente ao facilitar o uso de lambdas.