18.1. Gateway
Objeto que encapsula o acesso a um sistema ou recurso externo.
Resumo
- Encapsula o acesso a um sistema ou recurso externo (API, fila, legado) em um objeto com interface simples.
- A interface é desenhada para quem usa, não espelha a API externa.
- Facilita trocar o fornecedor e criar Service Stub para testes.
- Mantenha o gateway mínimo: só tradução; nada de lógica de negócio.
- Gateway (cliente usa) ≠ Mapper (nenhum dos lados sabe). Table/Row Data Gateway são casos especiais.
Perguntas-chave
responda de cabeça, depois abraQual a diferença entre Gateway e Facade (GoF)?
Facade simplifica uma API para outros clientes; Gateway é escrito pelo próprio cliente para seu uso particular.
Qual a diferença entre Gateway e Mapper?
No Gateway o cliente conhece e chama o gateway; no Mapper nenhum dos lados sabe do outro.
Por que gateways facilitam testes?
Permitem substituir o sistema externo por um Service Stub.
Exercícios de fixação
0/5 respondidas1.
A aplicação chama
notificador.enviarSms(numero, texto) e a classe traduz isso para a API complexa do fornecedor. Qual padrão?2.
Como deve ser desenhada a interface do Gateway?
3.
Qual benefício direto do Gateway nos testes?
4.
Qual a diferença entre Gateway e Mapper?
5.
Um gateway de pagamento começa a calcular descontos de fidelidade. O que está errado?