Структурні патерни проектування
Список структурних патернів проектування, які відповідають за побудову зручних в підтримці ієрархій класів.

Дає змогу об’єктам із несумісними інтерфейсами працювати разом.

Розділяє один або кілька класів на дві окремі ієрархії — абстракцію та реалізацію, дозволяючи змінювати код в одній гілці класів, незалежно від іншої.

Дає змогу згрупувати декілька об'єктів у деревоподібну структуру, а потім працювати з нею так, ніби це одиничний об'єкт.

Дає змогу динамічно додавати об'єктам нову функціональність, загортаючи їх у корисні «обгортки».

Надає простий інтерфейс до складної системи класів, бібліотеки або фреймворку.

Дає змогу вмістити більшу кількість об'єктів у відведеній оперативній пам'яті. Легковаговик заощаджує пам'ять, розподіляючи спільний стан об'єктів між собою, замість зберігання однакових даних у кожному об'єкті.

Дає змогу підставляти замість реальних об'єктів спеціальні об'єкти-замінники. Ці об'єкти перехоплюють виклики до оригінального об'єкта, дозволяючи зробити щось до чи після передачі виклику оригіналові.