Na curta, porém rapidamente evolutiva história das ciências da computação e da engenharia de software, variaram muito as técnicas, métodos, processos, meios e recursos utilizados. Os projetos fracassavam com freqüência porque os desenvolvedores não conseguiam comunicar um ao outro bons projetos de software, arquiteturas e práticas de programação. Não faz muitos anos, estruturas de dados, fluxogramas e técnicas modulares de programação dominavam o cenário. Então, o paradigma de orientação a objetos iniciou sua trajetória. No contexto do desenvolvimento de software orientado a objetos, os padrões de projeto (…) tornaram-se um dos tópicos mais “quentes” na área de engenharia de software nos últimos anos. O simples uso da OO não garante que obtenhamos sistemas confiáveis, robustos, extensíveis e reutilizáveis. O foco das metodologias de desenvolvimento está na solução em si (o que e como) e não em suas justificativas (porque). “Um Pattern descreve um problema que se repete várias vezes em ...