Патерн Flyweight використовується для ефективної підтримки великого числа дрібних об'єктів, він дозволяє повторно використовувати дрібні об'єкти в різному контексті.
Для реалізації необхідно:
- Структура FlyweightFactory, що є модифікованим патерном фабрики, для створення пристосуванців;
- Інтерфейс Flyweighter, для опису пристосуванців;
- Структура ConcreteFlyweight яка реалізує пристосуванця, який буде заміщати собою однакові дрібні об'єкти.
Суть в тому, що ми можемо запитувати пристосуванців у фабрики за запитом, в свою чергу вона буде віддавати ті об'єкти, які вже були створені, або створювати нові. Це означає, що ми будемо використовувати вже створені об'єкти, а не створювати ще більше, якщо об'єкти під наші потреби вже існують.