Estruturais
Decorator: envelopa um objeto para fornecer novos comportamentos;
Proxy: envelopa um objeto para controlar o acesso a ele;
FlyWeigth: uma instancia de uma classe pode ser usada para fornecer muitas “instancias virtuais”;
Facade: simplifica a interface de um conjunto de classes;
Composite: Os clientes tratam as coleções de objetos e os objetos individuais de maneira uniforme;
Bridge: permite criar uma ponte para variar não apenas a sua implementação, como também as suas abstrações;
Adapter: envelopa um objeto e fornece a ele uma interface diferente;
Fonte: https://www.devmedia.com.br/design-patterns-padroes-gof/16781