Padrões de Design do GoF
Categorias Principais
- Padrões Criacionais: Focam na criação de objetos
- Singleton: Garante uma única instância de uma classe
- Factory Method: Cria objetos sem especificar a classe exata
- Abstract Factory: Cria famílias de objetos relacionados
- Builder: Constrói objetos complexos passo a passo
- Prototype: Cria novos objetos clonando existentes
- Padrões Estruturais: Lidam com composição de classes e objetos
- Adapter: Converte interface de uma classe em outra esperada
- Bridge: Separa uma abstração de sua implementação
- Composite: Compõe objetos em estruturas de árvore
- Decorator: Adiciona responsabilidades a objetos dinamicamente
- Facade: Fornece interface simplificada para um subsistema
- Flyweight: Compartilha objetos para economizar memória
- Proxy: Fornece um substituto para outro objeto
- Padrões Comportamentais: Descrevem comunicação entre objetos
- Chain of Responsibility: Passa uma solicitação ao longo de uma cadeia de handlers
- Command: Transforma uma solicitação em um objeto independente
- Interpreter: Implementa uma linguagem especializada
- Iterator: Acessa elementos de uma coleção sequencialmente
- Mediator: Reduz dependências diretas entre objetos
- Memento: Captura e restaura o estado interno de um objeto
- Observer: Define uma dependência um-para-muitos entre objetos
- State: Permite que um objeto altere seu comportamento
- Strategy: Define uma família de algoritmos intercambiáveis
- Template Method: Define o esqueleto de um algoritmo
- Visitor: Separa um algoritmo de uma estrutura de objetos
Referência
Livro: “Design Patterns: Elements of Reusable Object-Oriented Software” Autores: Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides Publicado em 1994
Princípio Fundamental
Os padrões de design visam tornar o código mais flexível, reutilizável e manutenível, resolvendo problemas recorrentes no desenvolvimento de software orientado a objetos.