O que é um padrão de projeto?.
Os padrões de projeto são soluções típicas para problemas que ocorrem com frequência no design de software. Eles são como plantas prontas que você pode personalizar para resolver um problema de design recorrente no seu código.
Você não pode simplesmente encontrar um padrão e copiá-lo para o seu programa, como faz com funções ou bibliotecas prontas. O padrão não é um trecho específico de código, e sim um conceito geral para resolver um problema específico. Você pode seguir os detalhes do padrão e implementar uma solução que se adapte à realidade do seu próprio programa.
Os padrões costumam ser confundidos com algoritmos, porque ambos os conceitos descrevem soluções típicas para alguns problemas conhecidos. Enquanto um algoritmo sempre define um conjunto claro de ações capazes de atingir um objetivo, um padrão é uma descrição de uma solução em um nível mais alto. O código de um mesmo padrão aplicado a dois programas diferentes pode ser diferente.
Uma analogia para um algoritmo é uma receita de culinária: ambos têm passos claros para atingir um objetivo. Por outro lado, um padrão é mais como uma planta: você consegue ver qual é o resultado e quais são suas características, mas a ordem exata de implementação fica a seu critério.
Do que um padrão é composto?
A maioria dos padrões é descrita de forma muito formal para que as pessoas possam reproduzi-los em muitos contextos. Aqui estão as seções que costumam estar presentes na descrição de um padrão:
- O Propósito do padrão descreve brevemente tanto o problema quanto a solução.
- A Motivação explica em mais detalhes o problema e a solução que o padrão torna possível.
- A Estrutura das classes mostra cada parte do padrão e como elas se relacionam.
- Um Exemplo de código em uma das linguagens de programação populares facilita a compreensão da ideia por trás do padrão.
Alguns catálogos de padrões listam outros detalhes úteis, como a aplicabilidade do padrão, os passos de implementação e as relações com outros padrões.