Заместитель (Proxy) — различия между версиями

Материал из Вики ИТ мехмата ЮФУ
Перейти к: навигация, поиск
(Описание)
(Описание)
Строка 14: Строка 14:
  
 
Заместитель следует интерфейсу основного объекта, хранит ссылку на него и инстанцирует его по требованию.
 
Заместитель следует интерфейсу основного объекта, хранит ссылку на него и инстанцирует его по требованию.
 +
 +
=== Использование ===
 +
Заместитель используется в следующих ситуациях.
 +
* '''Удаленный заместитель''' предоставляет локального представителя вместо объекта, находящегося в другом адресном пространстве.
 +
* '''Виртуальный заместитель''' создает "тяжелые" объекты по требованию.
 +
* '''Защищающий заместитель''' ограничивает права доступа к объекту.
 +
* '''Умная ссылка''' позволяет выполнить дополнительные действия при доступе к объекту - например, загрузить объект в память при первом доступе к нему или заблокировать объект при обращении к нему.
  
 
=== Реализация ===
 
=== Реализация ===

Версия 11:47, 8 августа 2014

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

Другое название

Суррогат (Surrogate)

Назначение

Заместитель ведет себя точно так же как и основной объект, выполняя при необходимости его инстанцирование.

Описание

В некоторых ситуациях расходы на создание и инициализацию объекта можно отложить до тех пор пока он действительно понадобится. Особенно заметен выигрыш - для тяжеловесных объектов, которые разумно создавать "по требованию".

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

Заместитель следует интерфейсу основного объекта, хранит ссылку на него и инстанцирует его по требованию.

Использование

Заместитель используется в следующих ситуациях.

  • Удаленный заместитель предоставляет локального представителя вместо объекта, находящегося в другом адресном пространстве.
  • Виртуальный заместитель создает "тяжелые" объекты по требованию.
  • Защищающий заместитель ограничивает права доступа к объекту.
  • Умная ссылка позволяет выполнить дополнительные действия при доступе к объекту - например, загрузить объект в память при первом доступе к нему или заблокировать объект при обращении к нему.

Реализация

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

Файл:Common.png

Участники

Пример

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

Варианты