美文网首页
代理模式C++

代理模式C++

作者: 涵仔睡觉 | 来源:发表于2018-05-15 20:03 被阅读0次

代理模式:为其他对象提供一种代理以控制对这个对象的访问。

代理模式结构图

image

代理模式基本代码

#include <iostream>
using namespace std;

class Subject { // Subject类定义了RealSubject和Proxy的公用接口,这样就在任何使用RealSubject的地方都可以用Proxy
public:
    virtual void Request() = 0;
    virtual ~Subject() {}
};

class RealSubject : public Subject { // RealSubject类,定义了Proxy所代表的真实实体
public:
    void Request() { cout << "RealSubject" << endl; }
};

class Proxy : public Subject { // Proxy类,保存一个引用使得代理可以访问实体,并提供一个与Subject的接口相同的接口,这样代理就可以用来代替实体
private:
    RealSubject* realSubject;
public:
    void Request() {
        if (realSubject == NULL) realSubject = new RealSubject();
        realSubject->Request();
    }
    ~Proxy() {
        if (realSubject != NULL) {
            delete realSubject;
            realSubject = NULL;
        }
    }
};

int main() {
    Proxy* p = new Proxy();
    p->Request(); // RealSubject

    delete p;
    return 0;
}

应用场合

  1. 远程代理,也就是为了一个对象在不同的地址空间提供局部代表,这样可以隐藏一个对象存在于不同地址空间的事实。
  2. 虚拟代理,是根据需要创建开销很大的对象,通过它来存放实例化需要很长时间的真实对象。
  3. 安全代理,用来控制真是对象的访问权限。一般用于对象应该有不同的访问权限的时候。
  4. 智能指引,是指当调用真实的对象时,代理处理另外一些事。

相关文章

  • 代理模式C++

    代理模式:为其他对象提供一种代理以控制对这个对象的访问。 代理模式结构图 代理模式基本代码 应用场合 远程代理,也...

  • c++代理模式

    1.代理模式简介    代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用。通俗的来讲代理模式就...

  • C++设计模式 ==> 代理模式

    简介 代理模式,顾名思义,就是让代理替代真实事物做事情,且结果是是等效的,就相当于现实世界中的中介。在设计模式中,...

  • 【C++设计模式】代理模式

  • 设计模式

    单例模式 模板方法模式 工厂模式 代理模式 静态代理 JDK动态代理

  • 设计模式

    单例模式 代理模式 静态代理 jdk动态代理 cglib动态代理 工厂模式 适配器模式 建造者模式 观察者模式

  • kube-proxy的3种模式

    userspace代理模式 iptables代理模式 IPVS代理模式 https://kubernetes.io...

  • C++ 设计模式 —— 12.代理模式

    代理模式:一种结构型设计模式 应用场景:代理模式,工作中很常用。我们在公司使用网络服务时,都会经过代理服务器,这个...

  • 第4章 结构型模式-代理模式

    一、代理模式简介 二、代理模式3个角色 三、代理模式的优点 四、代理模式的实例(游戏代练)

  • 理解代理模式

    原创博客地址 简介 代理模式,也叫做委托模式,分为:静态代理动态代理 代理模式也是平时比较常用的设计模式之一,代理...

网友评论

      本文标题:代理模式C++

      本文链接:https://www.haomeiwen.com/subject/bqiydftx.html