Приспособленец (Flyweight) — различия между версиями

Материал из Вики ИТ мехмата ЮФУ
Перейти к: навигация, поиск
(Другое название)
(Описание)
Строка 5: Строка 5:
  
 
=== Описание ===
 
=== Описание ===
 +
=== Назначение ===
 +
Паттерн Flyweight можно использовать в случаях когда:
 +
* в приложении имеется множество почти одинаковых объектов
 +
* различающиеся части почти одинаковых объектов можно отделить от одинаковых и заменить эти почти одинаковые объекты одним совместно используемым объектом, передавая различающуюся часть как параметр операции
  
 
=== Реализация ===
 
=== Реализация ===

Версия 16:13, 6 августа 2014

К основной странице курса

Назначение

Уменьшает количество объектов системы с многочисленными низкоуровневыми особенностями путем совместного использования подобных объектов.

Описание

Назначение

Паттерн Flyweight можно использовать в случаях когда:

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

Реализация

Диаграмма классов

FlyweightCommon.png

Участники

Пример

В графическом редакторе не надо хранить каждый символ в виде объекта. Достаточно хранить по одному объекту для каждого из используемых символов кодовой таблицы и в метод рисования передавать контекст рисования (например, строку-столбец). Таким образом, у каждого объекта есть внутреннее состояние (символ, который он представляет) и внешнее (строка-столбец), которое не хранится вместе с объектом, а передается ему как параметр в качестве внешнего контекста.

Код

Достоинства и недостатки

Варианты