❓ Расскажите о паттерне Flyweight
Flyweight — это структурный паттерн, который позволяет вместить большее количество объектов в отведённую оперативную память за счёт разделения общего состояния между объектами.
Простыми словами: вместо создания тысяч похожих объектов, вы создаёте несколько объектов-легковесов с общими данными и передаёте уникальные данные извне при использовании.
▪️ Когда использовать
— Приложение создаёт огромное количество однотипных объектов
— Объекты потребляют много памяти
— Большую часть состояния можно вынести за пределы объекта
— Приложение не зависит от идентичности объектов (можно переиспользовать)
▪️ Минусы
— Усложнение кода из-за разделения состояния
— Flyweight должен быть immutable для безопасного переиспользования
Post #1270
981
- 👍 5
- ❤ 1
- 🔥 1