Padrões de criação:
1. Abstract Factory - prover uma interface para criação de famílias de objetos relacionados ou dependentes sem que se especifiquem suas classes concretas.
2. Builder - fazer com que um processo único de construção de um objeto complexo possa ser utilizado para diferentes formas de representação do mesmo.
3. Factory Method - permitir a definição de uma interface (o factory method) em uma classe mãe abstrata que, em suas subclasse, especializa-se para criar vários tipos de objeto.
4. Singleton - garantir que uma classe possua uma e somente uma instância.
5. Prototype - prover uma abordagem diferente para criação de objetos, através da clonagem de uma instância denominada protótipo.
Padrões estruturais:
1. Adapter - converter uma interface de uma classe em outra, permitindo que classes com interfaces incompatíveis possam trabalhar em conjunto.
2. Bridge - permitir que a abstração de uma classe seja independente de sua implementação, de forma a facilitar e diminuir a necessidade de combinação entre diversos tipos de implementação e diversos tipos de classes.
3. Decorator - estender a responsabilidade de um objeto dinamicamente, em tempo de execução, sem a necessidade de criação de subclasses.
4. Flyweight - prover uma estrutura para a representação de classes que possuam um grande número de instâncias com características que se repetem com muita frequência.
5. Proxy - prover uma forma rápida e leve de acesso a um objeto, que vai substituí-lo enquanto não for necessário acessar sua instância diretamente.
6. Facade - produzir uma interface mais simples para que um cliente possa acessar diversos métodos de um grupo de classes.
7. Composite - prover uma estrutura de árvore para representação eficiente de relações todo-parte.
Padrão comportamental:
1. Chain of responsibility - evitar acoplamento entre o emissor e o receptor de uma requisição, de forma que mais de um objeto possa manusear esta requisição.