Приспособленец
Flyweight
Назначение
Паттерн Приспособленец (Flyweight) — это структурный паттерн проектирования, который применяется для эффективной поддержки большого числа мелких объектов засчет разделения объектов на две части: внутреннее состояние (уникальная информация, специфичная для каждого объекта) и внешнее состояние (общая информация, которая может быть разделяемой между объектами)
Решаемые задачи
потребность в создании огромного количество объектов, каждый из которых содержит часть информации, которая является общей для множества других объектов
экономия времени на создание и уничтожение объектов
Данный паттерн проектирования будет эффективен при выполнении всех последующих условий:
в приложении используется большое число объектов
накладные расходы на хранение высоки
большую часть состояния объектов можно вынести вовне
многие группы объектов можно заменить относительно небольшим количеством разделяемых объектов, поскольку внешнее состояние вынесено
приложение не зависит от идентичности объекта
UML диаграмма

Преимущества
создание более гибкого и поддерживаемого кода
увеличение скорости выполнения ресурсоемких операций: за счет снижения нагрузки на создание и удаление объектов
экономия оперативной памяти
Недостатки
расход процессорного времени на поиск/вычисление контекста
усложнение кода программы из-за введения множества дополнительных классов
Связь с другими паттернами
Компоновщик: паттерн приспособленец часто используется в сочетании с компоновщиком для реализации иерархической структуры в виде ациклического направленного графа с разделяемыми листовыми вершинами.
Стратегия: часто наилучшим способом реализации объектов стратегии является паттерн приспособленец.
Last updated
Was this helpful?