Muitos problemas surgem de forma recorrente a cada novo projeto, sendo possível estabelecer
soluções pré-convencionadas para reaproveitamento futuro. A solução, no entanto, somente será eficaz
se for apropriada ao contexto do problema, pois no mundo do software, a predefinição de padrões pode
ser muito granularizada para aplicação prática repetitiva. Muitas vezes é necessário fornecer uma
infraestrutura mínima, específica para implementação, que pode conter vários padrões, sendo
denominada: