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

Cópia de código com Interfaces

Bom dia!

Acabei de assistir ao vídeo de interfaces no java e entendi que a grande vantagem de utilizar interface seria para que a classe que utiliza a interface não "esquecer" de implementar os métodos, porém isso não gera cópia de um mesmo código em todas as classes que utilizam a interface? Qual seria a maneira de não copiar o código?

No exemplo do vídeo a interface era "Autenticavel" e todas as classes que utilizam esta interface precisam implementar a maneira de se autenticar, que poderia (ou não) ser igual. Mas se pode ser igual, fica com código duplicado...

Não sei se consegui explicar a minha dúvida ou se ficou meio confuso.

Obrigado!

4 respostas

Boa tarde, Celso! Como vai?

De forma simples e direta, eu sempre gosto de dar o seguinte exemplo:

Se vc quer herdar comportamentos e atributos predefinidos entre diversas classes, então vc irá precisar de uma classe mãe ( abstrata ou não, dependendo da situação em questão )!

Agora, se o seu caso é apenas compartilhar entre várias classes uma assinatura de método sem implementação padrão, então vc irá precisar de uma interface!

A mim, essa divisão deixa as coisas bem claras e como resolver a situação exposta por vc! O que vc acha?

Qualquer coisa é só falar!

Grande abraço e bons estudos, meu aluno!

Boa noite!

Talvez eu não tenha deixado minha dúvida muito clara. Basicamente queria saber se havia uma alternativa para não ficar fazendo "copy/paste" na implementação dos métodos de uma interface nas diversas classes que utilizam esta interface.

Porém assistindo aos próximos vídeos do curso, o próprio instrutor resolveu esta questão utilizando composição, na qual a lógica da implementação ficava neste objeto de utilidades, e na implementação da interface fazíamos referencia a este objeto.

Consegui sanar a minha dúvida e agradeço a explicação que deu que me ajuda a reforçar quando devo utilizar herança ou quando devo utilizar interface.

Obrigado!

solução!

Opa, Celso! Como vai?

Talvez eu não tenha deixado minha dúvida muito clara. Basicamente queria saber se havia uma alternativa para não ficar fazendo "copy/paste" na implementação dos métodos de uma interface nas diversas classes que utilizam esta interface.

Veja que na minha resposta eu disse que quando se deseja herdar comportamentos iguais entre diversas classes então o caminho é a utilização de uma classe mãe que será estendida por outras e que herdarão essa implementação padrão! Desse modo, evita-se justamente o tal "copy/paste" que vc falou!

obrigado!