1
resposta

Não consigo reaproveitar nada com Interfaces

No exemplo, usando as interfaces, tudo ficou mais lógico para o negócio, porém, eu perdi a opção de aproveitar a implementação do método "autentica", que é a mesma para todos que implementam a interface. Supondo que este método fosse grande e complexo, seria péssimo para a solução, ter que copiá-lo em todos que implementam a interface. Qual seria, neste caso, a melhor solução?

1 resposta

Oi Breno, tudo bom?

Realmente, quando optamos por utilizar interfaces não estamos nos preocupando em como cada classe vai implementar aquele método. Se um método tem a mesma implementação para diversas classes é possivel que elas tenham algo em comum semanticamente.

Uma forma de reaproveitar o código, quando a semantica faz sentido, seria utilizar uma super classe para todas. Na verdade essa é a unica forma de reaproveitar o conteudo escrito. Entretanto, nem sempre a quantidade de linhas será um bom parametro para um bom código.

Vale muito mais a pena manter a semantica e escrever mais código do que utilizar herança apenas por aproveitamento. Isso é, do ponto de vista da facilidade para dar manutenção no software.

Aqui no blog da caelum, o Paulo Silveira fala um pouco sobre herança e alguns pontos que costumam ficar confusos pra gente =)

Qualquer duvida é só falar.

Abraço e bons estudos =)