Pular para o conteúdo
GoF/23 Padrões de Projeto Sumário geral

Um guia visual dos

padrões
de projeto

5 criacionais 7 estruturais 11 comportamentais

O catálogo da Gangue dos Quatro, de 1994, explicado com analogias do mundo real, diagramas desenhados passo a passo e código comentado.

ClienteAbstraçãoVariante AVariante Busa
A ideia comum aos 23 O cliente conversa com a abstração e nunca com a classe concreta. É daí que sai toda a flexibilidade — e é isso que cada padrão arranja de um jeito diferente.

“Cada padrão descreve um problema que ocorre repetidamente em nosso ambiente, e então descreve o cerne da solução para esse problema, de tal modo que você pode usar essa solução um milhão de vezes, sem nunca fazê-la da mesma forma duas vezes.”

Christopher Alexander, arquiteto — a epígrafe que abre o livro
23
padrões
3
famílias
62
relações
976
linhas de exemplo
9
formas de navegar
1994
ano da obra
23 padrões
1

Criacionais

Como os objetos nascem.

5 padrões

Abstraem o processo de instanciação. Tornam o sistema independente de como seus objetos são criados, compostos e representados. A pergunta que respondem é: “quem decide qual classe concreta usar, e quando?”

  1. 87 Abstract Factory Fábrica Abstrata Uma fábrica de fábricas: cria famílias inteiras de objetos combináveis.
  2. 97 Builder Construtor Monta objetos complexos passo a passo — o mesmo processo gera representações diferentes.
  3. 107 Factory Method Método Fábrica A superclasse define o esqueleto; a subclasse decide qual objeto criar.
  4. 117 Prototype Protótipo Criar copiando um objeto existente, sem depender da classe dele.
  5. 127 Singleton Singleton Uma única instância na aplicação inteira, com ponto de acesso global.
2

Estruturais

Como os objetos se encaixam.

7 padrões

Tratam da composição de classes e objetos para formar estruturas maiores, mantendo tudo flexível e eficiente. A pergunta: “como monto peças grandes a partir de peças pequenas sem colar tudo?”

  1. 139 Adapter Adaptador Traduz a interface de uma classe para outra que o cliente já espera.
  2. 151 Bridge Ponte Separa abstração de implementação para que as duas variem sem multiplicar classes.
  3. 163 Composite Composto Trate objetos individuais e grupos de objetos exatamente da mesma forma.
  4. 175 Decorator Decorador Empilhe comportamentos em tempo de execução, envolvendo o objeto em camadas.
  5. 185 Facade Fachada Uma porta de entrada simples para um subsistema complicado.
  6. 195 Flyweight Peso-Mosca Compartilhe a parte imutável entre milhões de objetos e economize memória.
  7. 207 Proxy Procurador Um substituto com a mesma cara, que controla o acesso ao objeto real.
3

Comportamentais

Como os objetos conversam.

11 padrões

Preocupam-se com algoritmos e com a atribuição de responsabilidades entre objetos. Descrevem não só padrões de objetos, mas padrões de comunicação entre eles. A pergunta: “quem faz o quê, e como um avisa o outro?”

  1. 223 Chain of Responsibility Cadeia de Responsabilidade Passe o pedido por uma fila de handlers até que um deles resolva.
  2. 233 Command Comando Transforme uma requisição em objeto — e ganhe fila, log, undo e agendamento de graça.
  3. 243 Interpreter Interpretador Cada regra da gramática vira uma classe que sabe se avaliar.
  4. 257 Iterator Iterador Percorra uma coleção sem saber como ela é feita por dentro.
  5. 273 Mediator Mediador Objetos param de falar entre si e passam a falar com um intermediário.
  6. 283 Memento Lembrança Salve e restaure o estado de um objeto sem violar seu encapsulamento.
  7. 293 Observer Observador Um objeto avisa automaticamente todos os interessados quando algo muda.
  8. 305 State Estado O objeto parece mudar de classe quando seu estado interno muda.
  9. 315 Strategy Estratégia Vários algoritmos intercambiáveis para a mesma tarefa, escolhidos em tempo de execução.
  10. 325 Template Method Método Modelo A superclasse fixa o esqueleto; as subclasses preenchem os buracos.
  11. 331 Visitor Visitante Adicione operações novas a uma hierarquia de classes sem alterá-las.