Lt304888.ru

Туристические услуги

Flyweight

22-10-2023

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

структурный

Описан в Design Patterns

Да

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

Содержание

Цель

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

Описание

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

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

Примеры

Пример на Java

Пример на C#

Пример на C++

Пример на PHP5

Пример на VB.NET

Символы на Smalltalk

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

Ссылки

  • Паттерн Flyweight (приспособленец) — назначение, описание, особенности и реализация на С++.

Flyweight.

© 2020–2023 lt304888.ru, Россия, Волжский, ул. Больничная 49, +7 (8443) 85-29-01