代理模式(Proxy)
意图
为其他对象提供一种代理以控制对这个对象的访问。
类图
参与者
Proxy:
Subject:定义RealSubject和Proxy的共用接口。
RealSubject:定义Proxy所代表的实体
作用:代理根据其种类,在适当的时候向RealSubject转发请求
代码
#include <iostream>
using namespace std;
class Subject
{
public:
virtual void Request()=0;
};
class RealSubject:public Subject
{
public:
void Request()
{
cout<<"真实的请求"<<endl;
}
};
class Proxy:public Subject
{
private:
RealSubject *pRealSubject;
public:
void Request()
{
pRealSubject->Request();
}
void SetRealSubject(RealSubject * p)
{
pRealSubject = p;
}
};
int main()
{
Proxy *pProxy = new Proxy();
pProxy->SetRealSubject(new RealSubject());
pProxy->Request();
}
应用