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

Um guia visual dos

23 padrões
de projeto

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

“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
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. Abstract Factory Fábrica Abstrata p. 87

    Uma fábrica de fábricas: cria famílias inteiras de objetos combináveis.

  2. Builder Construtor p. 97

    Monta objetos complexos passo a passo — o mesmo processo gera representações diferentes.

  3. Factory Method Método Fábrica p. 107

    A superclasse define o esqueleto; a subclasse decide qual objeto criar.

  4. Prototype Protótipo p. 117

    Criar copiando um objeto existente, sem depender da classe dele.

  5. Singleton Singleton p. 127

    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. Adapter Adaptador p. 139

    Traduz a interface de uma classe para outra que o cliente já espera.

  2. Bridge Ponte p. 151

    Separa abstração de implementação para que as duas variem sem multiplicar classes.

  3. Composite Composto p. 163

    Trate objetos individuais e grupos de objetos exatamente da mesma forma.

  4. Decorator Decorador p. 175

    Empilhe comportamentos em tempo de execução, envolvendo o objeto em camadas.

  5. Facade Fachada p. 185

    Uma porta de entrada simples para um subsistema complicado.

  6. Flyweight Peso-Mosca p. 195

    Compartilhe a parte imutável entre milhões de objetos e economize memória.

  7. Proxy Procurador p. 207

    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. Chain of Responsibility Cadeia de Responsabilidade p. 223

    Passe o pedido por uma fila de handlers até que um deles resolva.

  2. Command Comando p. 233

    Transforme uma requisição em objeto — e ganhe fila, log, undo e agendamento de graça.

  3. Interpreter Interpretador p. 243

    Cada regra da gramática vira uma classe que sabe se avaliar.

  4. Iterator Iterador p. 257

    Percorra uma coleção sem saber como ela é feita por dentro.

  5. Mediator Mediador p. 273

    Objetos param de falar entre si e passam a falar com um intermediário.

  6. Memento Lembrança p. 283

    Salve e restaure o estado de um objeto sem violar seu encapsulamento.

  7. Observer Observador p. 293

    Um objeto avisa automaticamente todos os interessados quando algo muda.

  8. State Estado p. 305

    O objeto parece mudar de classe quando seu estado interno muda.

  9. Strategy Estratégia p. 315

    Vários algoritmos intercambiáveis para a mesma tarefa, escolhidos em tempo de execução.

  10. Template Method Método Modelo p. 325

    A superclasse fixa o esqueleto; as subclasses preenchem os buracos.

  11. Visitor Visitante p. 331

    Adicione operações novas a uma hierarquia de classes sem alterá-las.