Catálogo de Design Patterns
Comparar padrõesCriacionais
A lógica de criação está ficando complexa ou espalhada
Singleton
Garante que uma classe tenha apenas uma instância e fornece um ponto de acesso global a ela.
Builder
Separa a construção de um objeto complexo da sua representação, para que o mesmo processo de construção possa criar representações diferentes.
Prototype
Especifica os tipos de objetos a criar usando uma instância prototípica, e cria novos objetos copiando esse protótipo.
Estruturais
Você está lutando contra fronteiras de componentes ou dependências externas
Adapter
Converte a interface de uma classe em outra interface que os clientes esperam, permitindo que classes trabalhem juntas mesmo com interfaces incompatíveis.
Facade
Fornece uma interface unificada e simplificada para um conjunto de interfaces em um subsistema, tornando o subsistema mais fácil de usar.
Decorator
Anexa responsabilidades adicionais a um objeto dinamicamente, oferecendo uma alternativa flexível à subclassificação para estender funcionalidade.
Proxy
Fornece um substituto ou placeholder para outro objeto para controlar o acesso a ele.
Comportamentais
O comportamento não para de mudar e os condicionais só aumentam
Observer
Define uma dependência um-para-muitos entre objetos, de forma que quando um objeto muda de estado, todos os seus dependentes são notificados e atualizados automaticamente.
Strategy
Define uma família de algoritmos, encapsula cada um deles, e os torna intercambiáveis. Strategy permite que o algoritmo varie independentemente dos clientes que o usam.
State
Permite que um objeto altere seu comportamento quando seu estado interno muda. O objeto vai parecer mudar de classe.
Command
Encapsula uma requisição como um objeto, permitindo parametrizar clientes com diferentes requisições, enfileirar ou registrar requisições, e suportar operações que podem ser desfeitas.