HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-03-10
1 <p>Теги: паттерн, шаблон проектирования, структурные шаблоны, приспособленец (flyweight)</p>
1 <p>Теги: паттерн, шаблон проектирования, структурные шаблоны, приспособленец (flyweight)</p>
2 <p>В случае использования<strong>структурного шаблона проектирования "Приспособленец"</strong>, объект, который представляет себя в разных местах программы как уникальный экземпляр, по факту таковым не является.</p>
2 <p>В случае использования<strong>структурного шаблона проектирования "Приспособленец"</strong>, объект, который представляет себя в разных местах программы как уникальный экземпляр, по факту таковым не является.</p>
3 <p>В качестве примера можно привести заказ молочного коктейля в кафе. Представьте, что вы отстояли большую очередь жарким летом и, наконец-то, добрались до прилавка, где заказали стакан коктейля. Продавец, получив очередной заказ, готовит не один стакан, а сразу большую емкость, взбивая коктейль на специальном оборудовании. Для чего это делается, я думаю, понятно -- сразу готовится коктейль и кому-нибудь еще, кто стоит в очереди за вами. Таким образом экономится не только время, но и<strong>ресурсы</strong>, например, электричество. Так вот, электрические ресурсы, которые делятся (sharing), в нашем случае и являются приспособленцами.</p>
3 <p>В качестве примера можно привести заказ молочного коктейля в кафе. Представьте, что вы отстояли большую очередь жарким летом и, наконец-то, добрались до прилавка, где заказали стакан коктейля. Продавец, получив очередной заказ, готовит не один стакан, а сразу большую емкость, взбивая коктейль на специальном оборудовании. Для чего это делается, я думаю, понятно -- сразу готовится коктейль и кому-нибудь еще, кто стоит в очереди за вами. Таким образом экономится не только время, но и<strong>ресурсы</strong>, например, электричество. Так вот, электрические ресурсы, которые делятся (sharing), в нашем случае и являются приспособленцами.</p>
4 <p>Аналогичный пример из жизни -- покупка чая в уличном ларьке на массовом мероприятии (сразу заваривается большой объем чая, что избавляет от необходимости постоянно заваривать отдельный стаканчик для каждого покупателя).</p>
4 <p>Аналогичный пример из жизни -- покупка чая в уличном ларьке на массовом мероприятии (сразу заваривается большой объем чая, что избавляет от необходимости постоянно заваривать отдельный стаканчик для каждого покупателя).</p>
5 <p>Если вернуться к программированию, то можно сказать, что "Приспособленец" применяется в целях минимизации использования памяти/вычислительной стоимости посредством разделения ресурсов с максимальным числом схожих объектов.</p>
5 <p>Если вернуться к программированию, то можно сказать, что "Приспособленец" применяется в целях минимизации использования памяти/вычислительной стоимости посредством разделения ресурсов с максимальным числом схожих объектов.</p>
6 <p>Давайте рассмотрим, как это выглядит в коде. Возьмем за основу последний пример с чаем. Итак, в самом начале у нас существуют различные виды -- это<strong>Tea</strong>и<strong>TeaMaker</strong>:</p>
6 <p>Давайте рассмотрим, как это выглядит в коде. Возьмем за основу последний пример с чаем. Итак, в самом начале у нас существуют различные виды -- это<strong>Tea</strong>и<strong>TeaMaker</strong>:</p>
7 <p>Кроме того, существует<strong>TeaShop</strong>, где заказы принимаются и обрабатываются:</p>
7 <p>Кроме того, существует<strong>TeaShop</strong>, где заказы принимаются и обрабатываются:</p>
8 <p>Ну и непосредственный пример использования:</p>
8 <p>Ну и непосредственный пример использования:</p>
9 <p>Пожалуй, на этом все. Также вы можете посмотреть<a>пример реализации шаблона "Приспособленец" на языке программирования Java</a>.</p>
9 <p>Пожалуй, на этом все. Также вы можете посмотреть<a>пример реализации шаблона "Приспособленец" на языке программирования Java</a>.</p>
10 <p><em>По материалам https://github.com/kamranahmedse/design-patterns-for-humans.</em></p>
10 <p><em>По материалам https://github.com/kamranahmedse/design-patterns-for-humans.</em></p>
11  
11