Padrões de projeto (Design patterns) são soluções para problemas específicos em projeto de software orientado a objetos. Tais soluções são reconhecidas e validadas através da revisão e evolução ao longo de vários projetos.
A descrição geral de um padrão é composta tipicamente por:
A reutilização de padrões de projeto é interessante porque permite reaplicar soluções em um maior número de contextos do que o simples reuso de produtos acabados. Também, como o projeto ocorre em uma fase de desenvolvimento anterior à codificação, a adoção dessas soluções tem maior impacto sobre o resultado final.