Pular para o conteúdo
GoF/23 Padrões de Projeto Sobre a obra
IX
Capítulo IX — colofão

Sobre a obra

Tudo aqui vem de um livro só, publicado em 1994 e nunca superado como catálogo.

Capa da edição original de Design Patterns, Addison-Wesley, 1994

Capa da edição original · imagem via Open Library

“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
99
relações mapeadas
976
linhas de exemplo

O que é, afinal, um padrão de projeto

Definiçãoe o que ele não é

Não é uma biblioteca nem um trecho de código pronto. É a descrição de uma solução recorrente para um problema recorrente — algo que você adapta ao seu contexto e que nunca sai igual duas vezes.

O maior valor prático talvez não seja nem a solução em si, mas o vocabulário: dizer “aqui cabe um Observer” comunica em duas palavras o que levaria dois parágrafos.

E vale o aviso que o próprio livro dá: padrão aplicado onde não existe o problema correspondente é apenas complexidade a mais.

Os quatro elementos essenciais

Anatomiasegundo o livro
Nome
Um vocabulário compartilhado. Nomear bem já é metade do projeto.
Problema
Quando aplicar o padrão, e sob quais condições.
Solução
Os elementos, relações e colaborações — não uma implementação concreta.
Consequências
Os custos e benefícios. Todo padrão cobra um preço.

As cinco perguntas de uma ficha

D·E·D·A·Ca espinha das 23 fichas

Toda ficha deste guia responde às mesmas cinco perguntas, na mesma ordem. Não é invenção nossa: são cinco das treze seções do gabarito com que os próprios autores do livro descreveram cada padrão — Intent, Motivation, Structure, Applicability e Consequences. A sigla que as torna decoráveis vem do método D.E.D.A.C., do curso brasileiro Rabiscando Padrões de Projeto.

D Definição
O que o livro diz, palavra por palavra. Curto, formal e quase sempre obscuro na primeira leitura — é o destino, não o começo.
E Exemplo e motivação
A analogia, o problema concreto, a solução e os sintomas que denunciam esse problema no seu código. É aqui que o padrão faz sentido.
D Diagrama
As peças isoladas e como se ligam. Quem entende cada peça consegue adaptar o padrão em vez de copiá-lo. Cada diagrama pode ser visto sendo desenhado, traço a traço.
A Aplicabilidade
Quando pegar esta ferramenta — e quando não pegar. A pergunta mais útil no dia a dia, e a que mais some dos resumos por aí.
C Consequências
O que o padrão cobra depois de aplicado. Serve para você defender a decisão — ou para desistir dela a tempo.

Decorada a sequência, ela vale para qualquer padrão, inclusive os que não estão neste catálogo.

Como usar este guia

Roteirospor objetivo
Nunca estudou padrões
Comece pela aula no papel com o Strategy e siga a trilha.
Tem um problema concreto
Vá direto a estou com este problema.
Confunde dois padrões
O capítulo confunde-se com… existe exatamente para isso.
Quer o panorama
O mapa de relações mostra como os 23 se conectam.
Estuda para entrevista
Use a arguição.

Para ir além

Bibliografia
  • Design Patterns (GoF, 1994) — a fonte. Denso, formal, definitivo.
  • Head First Design Patterns — a porta de entrada mais didática.
  • Refactoring, de Martin Fowler — padrões como destino de refatorações.
  • Patterns of Enterprise Application Architecture — o catálogo do lado servidor.
  • refactoring.guru — referência online com ótimas ilustrações.

Colofão

Como foi feito

Composto na linguagem do estilo suíço: uma única grotesca — a Archivo — cobre texto, título e rótulo, em pesos diferentes; a JetBrains Mono fica restrita a código e identificadores técnicos. Ângulo reto em tudo, filete preto de 2 px, e cor chapada só quando significa alguma coisa: a família do padrão, um estado, uma ênfase.

Os diagramas não são imagens: são gerados a partir de uma descrição declarativa da estrutura de cada padrão, e o mesmo motor produz tanto a prancha técnica impressa nas fichas quanto o traço à mão livre da aula no papel.

Construído com Astro e componentes React sobre primitivos Base UI, sem framework de CSS.