您的位置:首页 > 编程语言 > C语言/C++

C++设计模式之十二:Proxy(代理)

2012-05-29 20:52 387 查看
一、意图:

提供代理以控制对象的访问;

二、类图:



三、组成元素:

Subject:公共接口;

Proxy:代理,保存引用用以访问对象;

RealSubject:定义Proxy所代表的实体;

四、实现代码:

#include "iostream"

using namespace std;

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

class RealSubject:public Subject
{
public:
virtual void Request()
{
cout<<"Request By RealSubject"<<endl;
}
};

class Proxy:public Subject
{
private:
RealSubject* m_pRealSubject;
public:
Proxy()
{
m_pRealSubject=NULL;
}
virtual void Request()
{
if (m_pRealSubject==NULL)
{
cout<<"Request By Proxy"<<endl;
m_pRealSubject=new RealSubject();
}
m_pRealSubject->Request();
}
};

void main()
{
Subject* pProxy=new Proxy();
pProxy->Request();
delete pProxy;
system("pause");
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: