Введение

Модель проектирования программного обеспечения
В компьютерном программировании, паттерн "заместитель" (proxy) является моделью проектирования программного обеспечения. Заместитель, в своей наиболее общей форме, – это класс, функционирующий как интерфейс к чему-либо другому. Заместитель может взаимодействовать с чем угодно: с сетевым соединением, большим объектом в памяти, файлом или другим ресурсом, который дорого или невозможно продублировать. Короче говоря, заместитель – это объект-оболочка или агент, к которому клиент обращается для доступа к реальному объекту, выполняющему работу "за кулисами". Использование заместителя может заключаться в простой переадресации запросов реальному объекту, либо предоставлять дополнительную логику. В заместителе можно реализовать дополнительную функциональность, например, кэширование при выполнении ресурсоемких операций с реальным объектом, или проверку предусловий перед выполнением операций над реальным объектом. Для клиента работа с объектом-заместителем аналогична работе с реальным объектом, поскольку оба реализуют один и тот же интерфейс.

Какие проблемы может решить модель проектирования Proxy?

Доступ к объекту должен контролироваться. При доступе к объекту должна предоставляться дополнительная функциональность. При обращении к конфиденциальным объектам, например, должна быть возможность проверки наличия у клиентов необходимых прав доступа.

Удаленный прокси

В распределенной объектной коммуникации локальный объект представляет удаленный объект (тот, который находится в другом адресном пространстве). Локальный объект является посредником (прокси) для удаленного объекта, и вызов метода у локального объекта приводит к вызову метода на удаленном объекте. Например, в реализации банкомата банкомат может содержать прокси-объекты для банковской информации, хранящейся на удаленном сервере.

Защитный прокси

Прокси-сервер защиты может использоваться для управления доступом к ресурсу в соответствии с правами доступа.