Pular para o conteúdo

Catálogo de Patterns

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

Detalhe em Design Patterns (GoF). Com nota própria:

Detalhe em PoEAA. O eixo central é Transaction Script vs Domain Model; ao redor: Service Layer, DAO - Data Access Object, Gateway, Unit of Work, Registry.

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).

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