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