Solução: Aula 12 - Diagrama de Componentes 💡
Respostas e explicações para os exercícios da Aula 12.
✅ 1. O que é um Componente? (Básico)
Resposta Sugerida: Um componente é uma parte física e substituível do sistema que encapsula um conjunto de funções e se comunica apenas através de interfaces. Ex: Uma DLL, um arquivo JAR, um script Python ou um microserviço.
✅ 2. Lollipop e Socket (Básico)
Resposta Sugerida: * Provided Interface (Lollipop/Pirulito): A interface que o componente "oferece" para os outros usarem. * Required Interface (Socket/Tomada): A interface que o componente "precisa" que outro forneça para funcionar.
✅ 3. Acoplamento de Componentes (Intermediário)
Explicação: O acoplamento deve ser baseado em interfaces, não em implementações. Se o Componente A depende da interface IPagamento, eu posso trocar o Componente B (PayPal) pelo Componente C (Stripe) sem precisar alterar o código interno do Componente A.
✅ 4. Camadas vs Componentes (Intermediário)
Explicação: Camadas são organizações lógicas (ex: Camada de Visão). Componentes são organizações físicas (ex: index.html, main.js). Em uma boa arquitetura, os componentes são distribuídos dentro das camadas de forma a manter a alta coesão.
✅ 5. Desafio: Design de API (Desafio)
Resolução Sugerida:
graph LR
App[Mobile App] -- IAuth --> API[Gateway API]
API -- IOrder --> Srv[Serviço Pedidos]
Srv -- IPay --> Gateway[Gateway Externo]
style API fill:#e1f5fe
style Srv fill:#fff3e0