Padrões de design criacional fornecem vários mecanismos de criação de objetos, que aumentam a flexibilidade e a reutilização do código existente.
Um componente responsável exclusivamente pela criação completa (não por partes) de objetos.
Permite produzir famílias de objetos relacionados sem especificar suas classes concretas.
Quando a construção de objetos por partes for complicada, forneça uma API para fazer isso de forma sucinta.
Um objeto parcial ou totalmente inicializado que você copia (clone) e usa.
Um componente que é instanciado apenas uma vez.
Padrões de projeto estrutural explicam como montar objetos e classes em estruturas maiores, mantendo essas estruturas flexíveis e eficientes.
Um constructor que adapta uma interface X existente para estar em conformidade com a interface Y necessária.
Um mecanismo que separa uma interface de uma implementação (abstração e implementação).
Um mecanismo para tratar objetos individuais e composições de objetos de maneira uniforme.
Facilita a adição de comportamentos a objetos individuais sem herdar deles.
Fornece uma interface de usuário simples e fácil de entender em um código grande e sofisticado.
Padrões de projeto comportamentais estão preocupados com algoritmos e atribuição de responsabilidades entre objetos.
Uma cadeia de componentes que têm a chance de processar um comando ou uma consulta, opcionalmente com implementação de processamento padrão e capacidade de encerrar a cadeia de processamento.
Permite que o comportamento exato de um sistema seja selecionado em tempo de execução.