O que é interface em C#? | Definição, componentes, prós e contras

O propósito de uma interface é demarcar o que qualquer classe faz. O papel de uma interface é a definição de seus membros. A interface não pode implementar os próprios membros; é inteiramente dependente da classe que herda e implementa.

Qualquer interface pode incluir métodos, eventos, propriedades e indexadores, mas a interface pode ter apenas suas assinaturas vazias. A função de declaração é a tarefa principal de uma interface - ela carece de implementação e funcionalidade. Portanto, ele fornece apenas um esboço das funções de uma classe que herda e implementa suas propriedades.

Diferentes componentes de uma interface em C#

Uma boa maneira de entender o conceito de interface é imaginá-la como uma classe abstrata desprovida de capacidade de implementação. Os pontos a seguir lançam luz sobre outros aspectos e recursos da interface em C#.

  1. Como a implementação não tem função na interface, ela pode ser reutilizada várias vezes. Uma vez que é a estrutura primária ou projeto no qual uma classe é baseada, ele pode ser usado para criar códigos de diferentes tipos, mas com um certo grau de semelhança.
  2. Implementando várias interfaces, pode-se efetivamente contornar o problema de C# não suportar a herança de várias classes de uma vez.
  3. Uma interface geralmente é sempre totalmente implementada porque determina o que uma classe pode fazer. Também é uma ótima maneira de agrupar classes que herdam da mesma interface. A interface também é eficaz para permitir a comunicação entre objetos e métodos de diferentes classes.
  4. As modificações no comportamento das classes ou em sua definição e funcionalidade tornam-se mais simples e fáceis por causa da interface.
  5. Uma interface contém necessariamente apenas métodos. É sempre definido pelo modificador para acesso público.

Vantagens da interface em C#

  1. Interface torna o agrupamento e classificação de códigos uma tarefa mais fácil por causa de sua reutilização e sua definição dos componentes separados de qualquer classe. Também é flexível o suficiente para acomodar mudanças em futuras definições de classe.
  2. Portanto, ele também pode ser usado para desvendar e estudar os relacionamentos entre os objetos de classe dependentes. Ao mesmo tempo, reduz a dependência de uma classe sobre a outra.
  3. A implementação de múltiplas heranças e o acoplamento fraco de aplicativos são possíveis devido às características básicas da interface em C#.
  4. Freqüentemente, é preferível que os programadores façam uma classe abstrata devido a esta vantagem significativa - embora uma classe não possa herdar mais do que uma única classe abstrata, pode fazê-lo no caso de interface.

Desvantagens da interface em C#

  1. A implementação de várias interfaces ao mesmo tempo pode criar erros, como membros conflitantes. Um programador também deve ter em mente que uma interface não possui muitos métodos, porque isso torna complicada a implementação de todos os métodos por uma classe.
  2. Uma interface só pode ser usada para definir os elementos comuns de um conjunto de classes, ela não pode ser modificada para incluir detalhes específicos de algumas. Os detalhes seriam então implementados por todas as classes em questão.

Referências

  1. https://www.scientific.net/AMR.622-623.1929
  2. https://dl.acm.org/doi/book/10.5555/1162257
x
2D vs 3D