Назначение: является суррогатом другого объекта и контролирует доступ к нему.

Общая структура решения.

 

 

Пример диаграммы объектов для структуры с заместителем во время выполнения:

 

 

Proxy – заместитель: хранит ссылку, которая позволяет ему обратиться к реальному субъекту, при этом может решать следующие задачи:

Subject – субъект: определяет общий для RealSubject и Proxy интерфейс, так что класс Proxy можно использовать везде, где ожидается RealSubject;

RealSubject – реальный субъект: определяет реальный объект, представленный заместителем.

Клиент владеет указателем на субъект, в который фактически записан заместитель. Заместитель при необходимости переадресует запросы объекту RealSubject. Детали зависят от вида заместителя.