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

Dúvida sobre interfaces

Se uma interface pode apenas possuir declarações mas sem qualquer implementação, qual é o benefício de usá-las? Pois se eu tenho que reescrever as declarações de funções, por exemplo, eu tenho que escrever ela de novo. Isso seria apenas como meio de não esquecer que tal função é obrigatória na classe?

2 respostas

Usando uma interface, você garante que aquele objeto que você implementou a interface vai ter aquelas declarações. Ele não precisa ser de um TIPO especifico, apenas implementar a interface, assim garantindo que aquele objeto irá ter aquelas declarações

Por exemplo em um método você pode receber como parâmetro um objeto que implementa uma interface X, não um tipo de objeto em especifico, mas qualquer um que implemente tal interface, desse jeito você pode deixar seu código mais flexível, porque você pode criar vários objetos diferentes que implementem a interface, e num método X, receber qualquer objeto que implemente-a, sem ficar preso a um tipo especifico

solução!

Existem varios beneficios no uso de interface que sao dificeis de explicar de forma superficial sem o aprofundamento em design patterns, entendimento sobre separation of concens, estrutura de codigo etc.

O benefico que diretamente voce consegue perceber eh: Como a interface eh um contrato, ela obriga aos que a assinam cumpram as regras do contrato, que sao as implementecoes exigidas. Isso eh legal pois traz um beneficio indireto para linguages como o c# que nao dao suporte a heranca multipla. Outro benefico eh que voce pode ter classes diferentes que implementam a mesma interface, ou seja, ambas podem ser refereciadas por uma outra classe, ou codigo, ao inves de ter uma implementacao do codigo para cada tipo de classe que contem.

Os beneficios nao aparentes que ai voce precisa ter conhecimento nos temas que falei sao:

  • Codigo desacoplado
  • Programacao baseada em componente (da uma olhada na Engine Unity por exemplo)
  • Facil manutencao
  • Codigo mais escalavel
  • Melhora a reutilizacao
  • a implementacao fica separada da assinatura, declaracao de Interfaces adiciona uma arquitetura plug and play na aplicacao.

Espero ter dado motivos suficientes para voce perceber que eh um importante conceito. Entendimento total so quando voce se deparar com situacoes reais onde interface faz a diferenca.

Espero ter ajudado