✨ Objetivo Geral da Aula

Compreender profundamente os padrões de projeto do tipo Estruturais, explorando seus contextos de uso, vantagens e desvantagens, analogias e implementações práticas exclusivamente em Java, com múltiplos exemplos simples por padrão.


📖 O que são Padrões Estruturais?

Padrões Estruturais tratam de como organizar classes e objetos para formar estruturas maiores. Seu foco está em garantir a manutenção e expansão do sistema sem alterar o que já está pronto.

Eles ajudam a "encaixar as peças" do software como se fosse um quebra-cabeça bem planejado.


1. Adapter — "O Tradutor"

📌 Definição

Permite que classes com interfaces incompatíveis trabalhem juntas, adaptando uma interface esperada para uma existente.

image.png

🚧 Problema Típico

Temos um sistema antigo que usa EmailSender.sendEmail(), mas queremos usar uma nova API MensagemService.enviarMensagem().

💡 Analogia

Um adaptador de tomada: conecta seu carregador antigo (padrão americano) a uma tomada brasileira.

📄 Exemplo prático

Imagine que seu código já está assim:

public class SistemaDeMensagens {
    public void notificarUsuario(String mensagem) {
        EmailSender.enviarEmail(mensagem);
    }
}

Mas agora a empresa contratou um novo serviço externo: