O uso de interfaces não acaba batendo na tecla de repetição de código? Uma vez que temos que sempre estar implementando o mesmo método em todas as classes que "assinarem o contrato" da interface. Ou mais pra frente existe alguma solução para isto...
O uso de interfaces não acaba batendo na tecla de repetição de código? Uma vez que temos que sempre estar implementando o mesmo método em todas as classes que "assinarem o contrato" da interface. Ou mais pra frente existe alguma solução para isto...
Oii Rafael, tudo certo?
Na verdade, acaba sendo exatamente o contrário: a interface nos ajuda a lidar com o código repetido de uma forma mais elegante.
Vamos supor que a gente esteja falando de um sistema de uma escola. Lá dentro, existem alunos, professores e funcionários. Para guardar o registro de um aluno, precisamos fazer algumas coisas que lidam com informações que são restritas a ele, como as notas. Com relação aos professores, o registro vai precisar das turmas relacionadas, e com o funcionário, as tarefas dele. Então, se tivéssemos um método registrar pra cada um, teríamos códigos repetidos de registros, mas também coisas diferentes.
Ao criar uma interface, estamos mostrando para o nosso programa que entendemos que há certos códigos repetidos, mas que eles são diferentes em algumas partes. Por isso, tudo que é repetido (que seria apenas a função registrar
, nesse caso) passa a fazer parte de um contrato, que será "assinado" pelas classes que aderirem a ele. E cada classe fará seus métodos do seu próprio jeito (o registro de um professor não é o mesmo de um aluno), o que implica em um código que não é repetido.
Espero ter ajudado! Qualquer dúvida, estou por aqui.
Abraços e bons estudos!