Назначение: является суррогатом другого объекта и контролирует доступ к нему.
Общая структура решения.
Пример диаграммы объектов для структуры с заместителем во время выполнения:
Proxy – заместитель: хранит ссылку, которая позволяет ему обратиться к реальному субъекту, при этом может решать следующие задачи:
Subject – субъект: определяет общий для RealSubject и Proxy интерфейс, так что класс Proxy можно использовать везде, где ожидается RealSubject;
RealSubject – реальный субъект: определяет реальный объект, представленный заместителем.
Клиент владеет указателем на субъект, в который фактически записан заместитель. Заместитель при необходимости переадресует запросы объекту RealSubject. Детали зависят от вида заместителя.