Ao longo do desenvolvimento de softwares, programadores mais experientes começam a enxergar problemas recorrentes e propõem uma forma de resolve-los. O catálogo nomeia esses problemas recorrentes e apresenta uma solução.
"Uma coisa que os melhores projetistas sabem que não devem fazer é resolver cada problema a partir de princípios elementares ou do zero. Em vez disso, eles reutilizam soluções que funcionaram no passado." (p 17)
Pessoas vieram antes de nós e provavelmente já se depararam com nossos problemas, aprender com elas é a forma de prosseguir. Caso contrário, podemos reinventar tudo o que elas descobriram e assim perder tempo. “Se eu vi mais longe, foi por estar no ombro de gigantes” (Isaac Newton).
”Quando encontram uma boa solução, eles a utilizam repetidamente. Consequentemente, você encontrará padrões, de classes e de comunicação entre objetos, que aparecem frequentemente em muitos sistemas orientados a objetos. Esses padrões resolvem problemas específicos de projetos e tornam os projetos orientados a objetos mais flexíveis e, em última instância reutilizáveis. Eles ajudam os projetistas a reutilizar projetos bem-sucedidos ao basear os novos projetos na experiência anterior. Um projetista que está familiarizado com tais padrões pode aplicá-los imediatamente a diferentes problemas de projeto, sem necessidade de redescobri-los.” (p 17)
Padrões de projeto. Soluções reutilizáveis de software orientado a objetos. Autores: ERICH GAMMA, RICHARD HELM, RALPH JOHNSON, JOHN VLISSIDES,