DEV Community

Cover image for Interface | Explicação Completa (Definição, uso, estrutura e exemplo com C#)
Daniela "Ingeniela" Barazarte
Daniela "Ingeniela" Barazarte

Posted on

Interface | Explicação Completa (Definição, uso, estrutura e exemplo com C#)

Interface | Explicação Completa (Definição, uso, estrutura e exemplo com C#)

Introdução

Olá, meu nome é Daniela Barazarte e quero dar as boas-vindas a esta explicação completa da interface. Esta explicação será intuitiva e simples assim como todas as explicações que fazem parte do #DetectaLaLogica.

Se você preferir vídeos, aqui está um tutorial completo feito por mim no YouTube, é em espanhol, mas também tem legendas: https://www.youtube.com/watch?v=UbZORJzMQec

Teoria

Definição de cada palavra

"Padrão de design"

  • Padrão: é um tipo de eventos ou objetos repetitivos Padrão de design
  • Design: atividade criativa cujo objetivo é projetar objetos úteis e estéticos

"Interface"

  • Interface: zona de comunicação ou ação de um sistema sobre outro Lápis e papel representando a Interface

Definição completa

O padrão de design de interface é uma especificação de métodos e propriedades que uma classe deve fornecer, e qualquer classe que implemente essa interface está comprometida em fornecer esses métodos e propriedades.

#DetectTheLogic

A palavra "Interface" é definida como "zona de comunicação ou ação de um sistema sobre outro". O padrão de design de interface é assim chamado porque uma interface está conversando com uma classe para informar quais parâmetros essa classe deve ter. É como um contrato onde a interface declara quais componentes ela possui e a classe também deve ter esses componentes.

Usar

Para que

A interface é usada para definir uma interface comum que pode ser implementada por várias classes diferentes. Esse padrão permite que essas classes tenham comportamentos diferentes enquanto aderem a uma mesma interface, proporcionando flexibilidade e modularidade ao aplicativo.

Quando e como

  • Por ter várias classes que devem obedecer a um conjunto específico de comportamentos
  • Por ter uma estrutura comum para plugins ou módulos externos que devem obedecer a um conjunto específico de comportamentos
  • Ao criar um aplicativo que deve ser compatível com diferentes arquiteturas de sistemas distribuídos
  • Ao criar um aplicativo que deve ser facilmente extensível e modular

Praticar

Exercício

Tens de criar um projeto de consola onde tens vários animais e podes escrever na consola o som que cada um deles faz

Método: Interface

Interface

A parte laranja (acima): é uma interface Animal
A parte azul (abaixo): são implementações dessa interface, no caso, 3 animais (gato, cachorro, pássaro)

animal de interface pública
{
     void MakeSound();
     void CallFriend();
}

public class Cachorro: IAnimal
{
     public void MakeSound()
     {
         Console.WriteLine("Uau! Woof!");
     }
     public void CallFriend()
     {
         Console.WriteLine("Vamos amigo cão!");
     }
}

public class Gato: IAnimal
{
     public void MakeSound()
     {
         Console.WriteLine("Miau! Miau!");
     }
     public void CallFriend()
     {
         Console.WriteLine("Vamos amigo gato!");
     }
}
classe pública Pássaro: IAnimal
{
     public void MakeSound()
     {
         Console.WriteLine("Tweet Tweet! Uau!");
     }

     public void CallFriend()
     {
         Console.WriteLine("Vamos amigo passarinho!");
     }
}
programa de classe pública
{
     public static void Main()
     {
         IAnimal meuGato = new Gato();
         IAnimal meuCão = new Cachorro();
         IAnimal meuPássaro = new Pássaro();

         meuCat.MakeSound();
         myCat.CallFriend();

         myDog.MakeSound();
         myDog.CallFriend();

         meuPássaro.MakeSound();
         myBird.CallFriend();
     }
}
Enter fullscreen mode Exit fullscreen mode

Ter uma interface "Animal" que implementa "Bird", "Dog" e "Cat" é benéfico porque fornece uma abstração útil que permite um alto nível de flexibilidade e extensibilidade no design de software. Ao definir uma interface "Animal", você estabelece certos comportamentos e características que todos os animais devem ter, como a capacidade de se mover e respirar.

A implementação dessa interface em "Bird", "Dog" e "Cat" garante que todos tenham essas características comuns e possam ser usados ​​de forma intercambiável no código que requer um objeto "Animal". Isso permite que o código seja mais modular e escalável, pois novos tipos de animais em conformidade com a interface "Animal" podem ser facilmente adicionados sem a necessidade de alterar o código existente.

Importância

O padrão de design de interface tem vários benefícios:

  • Abstração: As interfaces permitem definir um conjunto de métodos e propriedades que devem ser implementados por uma classe que os implemente. Isso permite que você abstraia a implementação de uma classe por trás de uma interface, tornando seu código mais fácil de entender e manter.
  • Separação de preocupações: Ao definir interfaces, você pode separar claramente a interface do usuário da lógica de negócios. Isso permite que as diferentes partes de um aplicativo se comuniquem por meio de interfaces bem definidas.
  • Polimorfismo: Interfaces permitem polimorfismo, o que significa que uma classe que implementa uma interface pode ser tratada como se fosse daquele tipo de interface. Isso permite que as classes que implementam a mesma interface sejam usadas de forma intercambiável em diferentes partes do código, facilitando a reutilização e a manutenção do seu código.

Até a próxima

(Lembre-se) #DetectaLaLógica: A palavra "Interface" é definida como "zona de comunicação ou ação de um sistema sobre outro". O padrão de design de interface é assim chamado porque uma interface está conversando com uma classe para informar quais parâmetros essa classe deve ter. É como um contrato onde a interface declara quais componentes ela possui e a classe também deve ter esses componentes.

Você pode praticar este tópico em meu repositório GitHub (código da linguagem C#): https://github.com/danielabarazarte/DetectaLaLogica

Muito obrigado por ler, se tiver alguma dúvida pode comentar e também pode me seguir para ver mais posts desse estilo, obrigado <3.

Top comments (0)