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

3 1 1 1 1

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.

Heroku

Build apps, not infrastructure.

Dealing with servers, hardware, and infrastructure can take up your valuable time. Discover the benefits of Heroku, the PaaS of choice for developers since 2007.

Visit Site

Top comments (0)

Billboard image

Create up to 10 Postgres Databases on Neon's free plan.

If you're starting a new project, Neon has got your databases covered. No credit cards. No trials. No getting in your way.

Try Neon for Free →

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay