意图
为其他对象提供一种代理以控制对这个对象的访问。
类图
参与者
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();
}
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();
}
应用