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
- 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
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
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();
}
}
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)