Olá, tudo bem?
Quando você cria uma interface e implementa essa interface em duas classes diferentes, você está criando um contrato que essas classes devem seguir. Isso significa que, independentemente de como cada classe implementa os métodos da interface, elas garantem que terão as mesmas assinaturas de métodos. Isso é útil quando você precisa tratar essas classes de forma genérica, sem se preocupar com a implementação específica de cada uma delas.
Por exemplo, imagine que você tem uma interface IMensagem
com um método EnviarMensagem()
. Você pode ter uma classe Email
que implementa essa interface e outra classe SMS
que também implementa a mesma interface. Agora, em um determinado ponto do seu código, você precisa enviar uma mensagem, mas não importa se é por email ou SMS. Você pode tratar essas classes de forma polimórfica, utilizando a interface IMensagem
. Isso permite que você escreva um código mais flexível e reutilizável.
Além disso, o uso de interfaces também ajuda a diminuir as dependências entre as classes. Quando você programa voltado para interfaces, você está programando para abstrações, não para implementações específicas. Isso torna o código mais flexível e facilita a manutenção e evolução do sistema.
No caso de uma terceira classe que precisa de algumas propriedades, mas não de todos os métodos da interface, você pode considerar dividir a interface em interfaces menores, cada uma com um conjunto específico de métodos. Dessa forma, a terceira classe poderia implementar apenas as interfaces que são relevantes para ela. Isso permite uma maior granularidade no design do seu sistema e evita que você precise implementar métodos inúteis.
No entanto, é importante lembrar que o uso de interfaces deve ser feito de forma consciente e pensando na estrutura do seu sistema como um todo. Às vezes, pode ser necessário implementar uma interface completa, mesmo que alguns métodos não sejam utilizados em determinada classe. Isso pode ser necessário para manter a consistência do código ou para facilitar a manutenção futura.
Espero ter ajudado e bons estudos!