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

Interface

Quando devo utilizar interface ? A vantagem seria a "não duplicação" de código?

1 resposta
solução!

Olá Thales,Tudo bem?

As interfaces na realidade são uteis para promover contratos de código, neste caso quando sua classe implementa uma interface é garantido que ela implementa os métodos descritos na interface.

Isso é util para abstração, classes que precisam de um determinado comportamento podem então depender da interface ao invés da implementação final.

Isso permite a você por exemplo no futuro, quando precisar trocar a implementação não precisar mexer nos locais que dependem da interface, caso este novo código implemente a interface.

Um exemplo seria um sistema de notificações.

Por exemplo, suponha que você tenha um sistema que envia notificações por e-mail, você pode ter uma interface que define o método para enviar mensagem por exemplo public void Send(String message) e ter classes que implementam ela como a classe EmailSender.

Em algum ponto do sistema você precisa notificar o usuário e ao invés de depender do EmailSender você vai depender da interface.

O que irá ocorrer é que o local que envia e-mail vai receber um objeto que implementa a interface, e vai chamar o método Send passando a mensagem.

Suponhamos que eventualmente você precise alterar a forma de notificação para SMS e você tenha a classe SMSSender que implementa a mesma interface do EmailSender, neste caso você só vai precisar passar a implementação do SMSSender, sem precisar procurar o local onde você chama o Send para fazer mudanças.

Este é o principal objetivo das interfaces.