Паттерн проектирования "Приспособленец" (Flyweight) | OTUS

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

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

x_85f2f2f1_1-1801-633a8f.jpg

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

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

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

Давайте рассмотрим, как это выглядит в коде. Возьмем за основу последний пример с чаем. Итак, в самом начале у нас существуют различные виды -- это Tea и TeaMaker:

1-1801-8b5c9a.png

Кроме того, существует TeaShop, где заказы принимаются и обрабатываются:

2-1801-0a7ef3.png

Ну и непосредственный пример использования:

3-1801-52ffc0.png

Пожалуй, на этом все. Также вы можете посмотреть пример реализации шаблона "Приспособленец" на языке программирования Java.

flyweight_pattern_1-1801-b47d5a.png

По материалам https://github.com/kamranahmedse/design-patterns-for-humans.

Не пропустите новые полезные статьи!

Спасибо за подписку!

Мы отправили вам письмо для подтверждения вашего email.
С уважением, OTUS!

Автор
0 комментариев
Для комментирования необходимо авторизоваться
Популярное
Сегодня тут пусто