Padrões GoF

Padrões de Design do GoF

Categorias Principais

  1. 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
  2. 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
  3. 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.