No cotidiano de um desenvolvedor de software são enfrentados diversos problemas computacionais, mas, assim como um físico não precisa se preocupar em desenvolver uma teoria para a queda livre, pois Galileu já cuidou disso séculos atrás, quem programa também não precisa se preocupar em resolver certos problemas, pois outras pessoas já trabalharam nisso.
Conforme adquirimos experiência, percebemos que determinados problemas são recorrentes, mesmo em projetos diferentes. Automaticamente, nos lembramos de como solucionamos um desafio parecido anteriormente. É quase como se houvesse um padrão para solucionar certos tipos de problemas que encontramos. Esses padrões são conhecidos como Design Patterns ou Padrões de Projetos.
Não se trata de um framework ou um código pronto, mas de uma definição de alto nível de como um problema comum pode ser solucionado.
Alguns conceitos ficaram realmente conhecidos em 1994, quando os engenheiros de software Erich Gamma, Richard Helm, Ralph Johnson e John Vlissides escreveram o livro “Design Patterns: Elements of Reusable Object-Oriented Software” com o objetivo de catalogar problemas comuns aos projetos de desenvolvimento de software e as formas de resolver esses problemas.
Os autores do livro ficaram conhecidos como Gang of Four (Gangue dos quatro) ou “GoF”. Depois disso muitos outros livros surgiram, alguns criticando alguns desses padrões, e outros divulgando novos padrões.
Desde então, Design Patterns tem sido um tema bastante estudado por programadores e arquitetos de software pelo mundo todo.
Fonte: Opus Software
