Структурні патерни проектування
Список структурних патернів проектування, які відповідають за побудову зручних в підтримці ієрархій класів.
![Адаптер](/images/patterns/cards/adapter-mini.png?id=b2ee4f681fb589be5a0685b94692aebb)
Дає змогу об’єктам із несумісними інтерфейсами працювати разом.
![Міст](/images/patterns/cards/bridge-mini.png?id=b389101d8ee8e23ffa1b534c704d0774)
Розділяє один або кілька класів на дві окремі ієрархії — абстракцію та реалізацію, дозволяючи змінювати код в одній гілці класів, незалежно від іншої.
![Компонувальник](/images/patterns/cards/composite-mini.png?id=a369d98d18b417f255d04568fd0131b8)
Дає змогу згрупувати декілька об'єктів у деревоподібну структуру, а потім працювати з нею так, ніби це одиничний об'єкт.
![Декоратор](/images/patterns/cards/decorator-mini.png?id=d30458908e315af195cb183bc52dbef9)
Дає змогу динамічно додавати об'єктам нову функціональність, загортаючи їх у корисні «обгортки».
![Фасад](/images/patterns/cards/facade-mini.png?id=71ad6fa98b168c11cb3a1a9517dedf78)
Надає простий інтерфейс до складної системи класів, бібліотеки або фреймворку.
![Легковаговик](/images/patterns/cards/flyweight-mini.png?id=422ca8d2f90614dce810a8812c626698)
Дає змогу вмістити більшу кількість об'єктів у відведеній оперативній пам'яті. Легковаговик заощаджує пам'ять, розподіляючи спільний стан об'єктів між собою, замість зберігання однакових даних у кожному об'єкті.
![Замісник](/images/patterns/cards/proxy-mini.png?id=25890b11e7dc5af29625ccd0678b63a8)
Дає змогу підставляти замість реальних об'єктів спеціальні об'єкти-замінники. Ці об'єкти перехоплюють виклики до оригінального об'єкта, дозволяючи зробити щось до чи після передачі виклику оригіналові.