Приспособленец (шаблон проектирования)

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

Шаблон проектирования
Приспособленец
Flyweight
Тип:

структурный

Описан в Design Patterns

Да

Содержание

ЦельПравить

Оптимизация работы с памятью путём предотвращения создания экземпляров элементов, имеющих общую сущность.

ОписаниеПравить

Flyweight используется для уменьшения затрат при работе с большим количеством мелких объектов. При проектировании приспособленца необходимо разделить его свойства на внешние и внутренние. Внутренние свойства всегда неизменны, тогда как внешние могут отличаться в зависимости от места и контекста применения и должны быть вынесены за пределы приспособленца.

Flyweight дополняет шаблон Factory Method таким образом, что при обращении клиента к Factory Method для создания нового объекта ищет уже созданный объект с такими же параметрами, что и у требуемого, и возвращает его клиенту. Если такого объекта нет, то фабрика создаст новый.

 

ПримерыПравить

Пример на PythonПравить

Пример #1 на JavaПравить

Пример #2 на JavaПравить

Пример на C#Править

Пример на C++Править

Пример на PHP5Править

Пример на VB.NETПравить

Пример на RubyПравить

Символы на SmalltalkПравить

Символы в Smalltalk практически идентичны «обычным строкам», но не порождаются каждый раз заново. Два идентичных символа на самом деле всегда являются одним и тем же экземпляром класса Symbol, тогда как две идентичные строки могут быть разными экземплярами класса String.

СсылкиПравить