Pular para conteúdo

Exercícios: Interfaces e Composição 🧩

Instruções

Aplique os conceitos de Polimorfismo e Composição em Go.


🟢 Nível: Básico

  1. Interfaces: Crie uma interface chamada Forma com o método Area() float64.
  2. Implementação: Crie uma struct Quadrado (com campo Lado) que implemente a interface Forma.

🟡 Nível: Intermediário

  1. Múltiplas Formas: Crie uma struct Circulo (com campo Raio) que também implemente Forma. Crie uma função que receba um slice de Forma e imprima a área de cada uma.
  2. Composição: Crie uma struct Endereco (Rua, Cidade) e uma struct Pessoa que contenha um Endereco via composição (embedding). Imprima os dados da pessoa e seu endereço.

🔴 Nível: Desafio

5. Simulador de Notificações: Crie uma interface Notificador com o método Enviar(mensagem string). Implemente dois tipos: Email e SMS. Crie uma função que receba um Notificador e dispare uma mensagem de "Bem-vindo" usando ambos os tipos.

📚 Gabarito e Soluções Comentadas

Gabarito Explicado ### Questão 1: Interfaces **Resolução e Implementação:**
// Estrutura de implementação recomendada para Interfaces
// Validação de regras de negócio e retorno consistente
- **Explicação:** A solução atende diretamente aos requisitos de **Interfaces e Programação Orientada a Composição**, garantindo tipagem consistente, legibilidade e tratamento de casos de borda. ### Questão 2: Implementação **Resolução e Implementação:**
// Estrutura de implementação recomendada para Implementação
// Validação de regras de negócio e retorno consistente
- **Explicação:** A solução atende diretamente aos requisitos de **Interfaces e Programação Orientada a Composição**, garantindo tipagem consistente, legibilidade e tratamento de casos de borda. ### Questão 3: Múltiplas Formas **Resolução e Implementação:**
// Estrutura de implementação recomendada para Múltiplas Formas
// Validação de regras de negócio e retorno consistente
- **Explicação:** A solução atende diretamente aos requisitos de **Interfaces e Programação Orientada a Composição**, garantindo tipagem consistente, legibilidade e tratamento de casos de borda. ### Questão 4: Composição **Resolução e Implementação:**
// Estrutura de implementação recomendada para Composição
// Validação de regras de negócio e retorno consistente
- **Explicação:** A solução atende diretamente aos requisitos de **Interfaces e Programação Orientada a Composição**, garantindo tipagem consistente, legibilidade e tratamento de casos de borda. ### Questão 5: Simulador de Notificações **Resolução e Implementação:**
// Estrutura de implementação recomendada para Simulador de Notificações
// Validação de regras de negócio e retorno consistente
- **Explicação:** A solução atende diretamente aos requisitos de **Interfaces e Programação Orientada a Composição**, garantindo tipagem consistente, legibilidade e tratamento de casos de borda.