Заместитель (Proxy) — различия между версиями
Admin (обсуждение | вклад) (→Описание) |
Admin (обсуждение | вклад) (→Описание) |
||
Строка 14: | Строка 14: | ||
Заместитель следует интерфейсу основного объекта, хранит ссылку на него и инстанцирует его по требованию. | Заместитель следует интерфейсу основного объекта, хранит ссылку на него и инстанцирует его по требованию. | ||
+ | |||
+ | === Использование === | ||
+ | Заместитель используется в следующих ситуациях. | ||
+ | * '''Удаленный заместитель''' предоставляет локального представителя вместо объекта, находящегося в другом адресном пространстве. | ||
+ | * '''Виртуальный заместитель''' создает "тяжелые" объекты по требованию. | ||
+ | * '''Защищающий заместитель''' ограничивает права доступа к объекту. | ||
+ | * '''Умная ссылка''' позволяет выполнить дополнительные действия при доступе к объекту - например, загрузить объект в память при первом доступе к нему или заблокировать объект при обращении к нему. | ||
=== Реализация === | === Реализация === |
Версия 11:47, 8 августа 2014
Другое название
Суррогат (Surrogate)
Назначение
Заместитель ведет себя точно так же как и основной объект, выполняя при необходимости его инстанцирование.
Описание
В некоторых ситуациях расходы на создание и инициализацию объекта можно отложить до тех пор пока он действительно понадобится. Особенно заметен выигрыш - для тяжеловесных объектов, которые разумно создавать "по требованию".
В этом случае вместо самого объекта инстанцируется его Заместитель, а когда с объектом становится необходимо работать, инстанцируется сам объект.Например, в текстовом документе сбольшим количеством тяжеловесных изображений нет необходимости при открытии документа открывать и отображать все изображения. Необходимость в отображении изображения возникает лишь при переходе к области документа, в которой это изображение расположено.
Заместитель следует интерфейсу основного объекта, хранит ссылку на него и инстанцирует его по требованию.
Использование
Заместитель используется в следующих ситуациях.
- Удаленный заместитель предоставляет локального представителя вместо объекта, находящегося в другом адресном пространстве.
- Виртуальный заместитель создает "тяжелые" объекты по требованию.
- Защищающий заместитель ограничивает права доступа к объекту.
- Умная ссылка позволяет выполнить дополнительные действия при доступе к объекту - например, загрузить объект в память при первом доступе к нему или заблокировать объект при обращении к нему.