Структура работы заместителя
Работа заместителя выглядит следующим образом.
Псевдокод
В этом примере заместитель помогает добавить в программу механизм ленивой инициализации и механизм кеширования результатов работы библиотеки, содержащей данные об интеграции с YouTube.
Пример кеширования результатов работы реального сервиса с помощью заместителя
Оригинальный объект начинал загрузку по сети, даже если пользователь запрашивал одно и то же видео. Заместитель же загружает видео только один раз, используя для этого служебный объект, а в остальных случаях возвращает закешированный файл.