Elementos essenciais de um Design Pattern
Um Nome
- Descreve o problema de projeto, suas soluções e consequências em poucas palavras
- Permite projetar num nível mais alto de abstração
- Permite falar com outros sobre soluções e documentar código, já que os nomes de
padrões estão ficando padronizados
- "Todo mundo" conhece os 23 padrões da GoF
- É equivalente a padronizar "lista encadeada", "pilha", etc. no
mundo das estruturas de dados
O Problema
- Descreve quando aplicar o padrão
- Descreve o problema e o contexto
- Pode descrever problemas específicos de projeto
- Exemplo: como representar algoritmos como objetos?
- Pode descrever estruturas de objetos ou de classes que são sintomas de um projeto
inflexível
- Às vezes, o padrão lista condições que devem se aplicar para usar o padrão
A Solução
- Descreve os elementos constituintes do projeto, seus relacionamentos, responsabilidades
e colaborações
- A solução não descreve um projeto ou implementação concretos porque um padrão é
um gabarito de solução para várias situações
As Consequências
- Os resultados e trade-offs da aplicação do padrão
- Diz respeito a trade-offs de espaço, tempo, flexibilidade, extensibilidade,
portabilidade
programa