Паттерн Proxy предоставляет заместителя или суррогат для другого объекта, чтобы контролировать доступ к нему. Прокси имеет тот же интерфейс, что и реальный объект, но добавляет поведение — например, ленивую загрузку, контроль доступа, кеширование или логирование — перед делегированием ему.
Что делает паттерн Proxy
PROXY → an object that STANDS IN for another, controlling access to it:
→ same interface as the real object (clients use it transparently)
→ adds behavior BEFORE/AROUND delegating to the real object
→ controls WHEN and HOW the real object is accessed
→ "a stand-in that adds control/behavior"
