Адаптер (Adapter): Преобразует интерфейс одного класса в интерфейс другого, который ожидают клиенты. Позволяет классам с несовместимыми интерфейсами работать вместе.
Мост (Bridge): Отделяет абстракцию от ее реализации, позволяя изменять их независимо.
Компоновщик (Composite): Компонует объекты в древовидные структуры для представления иерархий "часть-целое". Позволяет клиентам единообразно работать как с отдельными объектами, так и с их композициями.
Декоратор (Decorator): Динамически добавляет новые обязанности объекту, не изменяя его структуру. Гибкая альтернатива наследованию для расширения функциональности.
Фасад (Facade): Предоставляет унифицированный интерфейс к набору интерфейсов в подсистеме. Определяет высокоуровневый интерфейс, который облегчает использование подсистемы.
Приспособленец (Flyweight): Позволяет эффективно использовать большое количество мелких объектов. Состояние, которое может быть разделено между несколькими объектами, выносится из них.
Заместитель (Proxy): Предохраняет доступ к другому объекту, предоставляя суррогат или "плейсхолдер" для него. Может выполнять ленивую инициализацию, контроль доступа или логирование.