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