C++设计模式之代理模式

参考《大话设计模式》的代理模式,把C#改写成c++的实现
代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用。

在代理模式(Proxy Pattern)中,由于客户端无法直接或者不想直接引用或使用一个对象,所以通过“中间件”起到代理目标对象功能的作用,为其他对象提供一种代理以控制对这个对象的访问。
这里写图片描述

Subject类

class Subject
{
    virtual void Request() = 0;
};

RealSubject类

class RealSubject:public Subject
{
public:
    void Request()
    {
        cout<<"真实请求"<<endl;
    }
};

Proxy类

class Proxy:public Subject
{
protected:
    RealSubject* realSubject;
public:
    void Request()
    {
        if(realSubject == NULL)
            realSubject = new RealSubject();
        realSubject->Request();
    }
};

测试

int main()
{
    Proxy* proxy = new Proxy();
    proxy->Request();

    delete proxy;
    return 0;
}

运行结果:

真实请求

猜你喜欢

转载自blog.csdn.net/zqw_yaomin/article/details/82291314
今日推荐