Proxy

Заместитель

Назначение

Идиома Proxy позволяет клиентскому коду работать с заместителем таким же образом, как с реальным объектом, не внося в него изменений.

Реализуется идиома при помощи шаблонов и наследования.

Заместитель может быть реализован как класс, который имеет тот же интерфейс, что и оригинальный объект, но может выполнять дополнительные действия перед вызовом методов оригинального объекта.

Паттерн Proxy и идиома Proxy на C++ являются разными концепциями.

  • Паттерн Proxy

Паттерн Proxy является одним из классических порождающих паттернов проектирования. Он предоставляет структуру для создания объекта-посредника, который выступает в роли замены или обертки для реального объекта. Прокси имитирует интерфейс реального объекта, позволяя себе встраиваться в клиентский код без изменения его логики.

Главная цель паттерна Proxy - контроль доступа к реальному объекту и предоставление дополнительной функциональности при его обращении.

  • Идиома Proxy

Идиома Proxy является практикой или подходом к реализации классов-оберток или прокси-классов для достижения определенных целей. Идиома Proxy используется для предоставления прокси-объектов, которые оборачивают реальные объекты и добавляют дополнительное поведение без изменения интерфейса реальных объектов.

Решаемые задачи

  • управление доступом к ресурсам или сервисам

  • кэширование данных

  • проведение логирования и аудита

  • обеспечение защищенного соединения между клиентом и сервером

Пример реализации идиомы Proxy

// Интерфейс для оригинального объекта и прокси
class Object 
{
public:
    virtual void DoSomething() = 0;
};
int main() 
{
    std::vector<ObjectProxy > objects(10);
    // Выполняем операцию для каждого объекта
    for (Object & obj : objects) 
        obj.DoSomething();    
    return 0;
}

Last updated

Was this helpful?