Шаблон проектирования «Прокси» (Proxy) используется для контроля доступа к объектам или для создания объектов с дополнительным функционалом без изменения основной логики приложения.
В рамках шаблона «Прокси» создается объект-заместитель, который выступает в качестве промежуточного звена между клиентом и основным объектом. Клиент обращается к заместителю вместо непосредственного обращения к основному объекту, и заместитель передает запросы основному объекту. При этом заместитель может выполнять дополнительные действия до или после обращения к основному объекту, например, проверять права доступа или кэшировать результаты запросов.
Шаблон «Прокси» может использоваться во многих ситуациях, например, для реализации ленивой инициализации объектов, когда создание объекта может быть ресурсоемкой операцией, или для ограничения доступа к объектам, когда требуется контроль над тем, кто и как использует объекты.