Catálogo de Patterns
As três famílias e seus níveis
Seção intitulada “As três famílias e seus níveis”Padrões operam em níveis de abstração diferentes. Confundi-los é fonte comum de over-engineering.
graph TD
GOF["GoF (1994)<br/>nível de classes/objetos"]
POEAA["PoEAA (2002)<br/>nível de aplicação/camadas"]
MS["Microservices Patterns<br/>nível de sistemas distribuídos"]
GOF --> POEAA --> MS
| Família | Nível | Pergunta que responde | Onde está |
|---|---|---|---|
| GoF | Classes e objetos | Como estruturar colaborações entre objetos? | Fundamentos |
| PoEAA | Aplicação e camadas | Como organizar lógica de domínio e acesso a dados? | Arquitetura de Aplicação |
| Microservices Patterns | Sistemas distribuídos | Como coordenar serviços com falhas e sem transação global? | Sistemas Distribuídos |
GoF — por categoria
Seção intitulada “GoF — por categoria”Detalhe em Design Patterns (GoF). Com nota própria:
- Criacionais (Padrões Criacionais): Builder, Abstract Factory.
- Estruturais (Padrões Estruturais): Proxy, Decorator, Facade.
- Comportamentais (Padrões Comportamentais): Chain of Responsibility, Strategy, Command, Mediator, Observer.
PoEAA — organização da aplicação
Seção intitulada “PoEAA — organização da aplicação”Detalhe em PoEAA. O eixo central é Transaction Script vs Domain Model; ao redor: Service Layer, DAO - Data Access Object, Gateway, Unit of Work, Registry.
Microservices Patterns
Seção intitulada “Microservices Patterns”Detalhe em Microservices Patterns, organizados por problema: consistência distribuída (SAGA, Message Outbox), consulta cross-service (API Composition, CQRS), resiliência (Retry, Fallback, Circuit Breaker) e borda externa (API Gateway).
O fio condutor: patterns realizam princípios
Seção intitulada “O fio condutor: patterns realizam princípios”Padrões não são um fim — são formas consagradas de honrar princípios já vistos. Os mais importantes se conectam diretamente:
| Padrão | Princípio / conceito que realiza |
|---|---|
| Strategy | OCP — destino do refactoring Replace Conditional with Polymorphism (Técnicas de Refactoring) |
| Abstract Factory, Facade | DIP — cliente depende de abstração |
| Observer | Base conceitual de Domain Events |
| Gateway (PoEAA) | O adapter secundário / driven port da Arquitetura Hexagonal |
| Domain Model (PoEAA) | O modelo rico do Domain-Driven Design |
| Registry (PoEAA) | Substituído por injeção de dependência (DIP) na prática moderna |
| Service Layer (PoEAA) | O Application Service do DDD / interactor de Use Cases |
| Message Outbox | Entrega confiável de Domain Events entre serviços |