Os padrões são modelos abstratos de alto nível cujo objetivo é documentar o contexto, seu respectivo problema, bem como sua solução.
Os padrões de projeto são independentes de linguagem de programação e podem ser aplicados a inúmeras delas. Apesar de alguns catálogos serem específicos de determinadas linguagens, a maioria dos padrões poderá ser implementado em uma linguagem diversa da utilizada pelo respectivo catálogo.
| Um padrão de projeto... | A estratégia (também chamada de implementação)... |
| ...descreve apenas o que fazer e não como fazer. | ...descreve o como fazer de um padrão. |
Inclusive, o mesmo padrão pode ter várias estratégias/implementações diferentes. Isso significa que um padrão define seus limites, suas fronteiras e sua estrutura geral. Enquanto isso, a sua materialização em alguma linguagem de programação, é dada pela estratégia/implementação.
Os padrões orientados a objetos são descritos em vários catálogos disponíveis eletronicamente e em material impresso. A seguir, apresentamos dois exemplos de catálogos, bem como seus padrões. O objetivo não é de estudar de modo aprofundado todos eles. Entretanto, alguns padrões serão detalhados nos módulos seguintes a esse.