(四)代理模式
为其他对象提供一种代理以控制对这个对象的访问。
GOOD:
远程代理:也就是为一个对象在不同的地址空间提供局部代表。这样可以隐藏一个对象在不同地址空间的事实。
虚拟代理:是根据需要创建开销很大的对象。通过代理来存放需要很长时间实例化的对象。
安全代理:用来控制真实对象的访问权限。
智能引用:当调用真实对象时,代理处理另外一些事。
#include <string>
#include <iostream>
using namespace std;
//(四)代理模式
//为其他对象提供一种代理以控制对这个对象的访问。
//GOOD:
//远程代理:也就是为一个对象在不同的地址空间提供局部代表。这样可以隐藏一个对象在不同地址空间的事实。
//虚拟代理:是根据需要创建开销很大的对象。通过代理来存放需要很长时间实例化的对象。
//安全代理:用来控制真实对象的访问权限。
//智能引用:当调用真实对象时,代理处理另外一些事。
//定义接口
class Interface
{
public:
virtual void Request()=0;
};
//真实类
class RealClass : public Interface
{
public:
virtual void Request()
{
cout<<"真实的请求"<<endl;
}
};
//代理类
class ProxyClass : public Interface
{
private:
RealClass* m_realClass;
public:
ProxyClass()
{
m_realClass= new RealClass();
}
virtual void Request()
{
m_realClass->Request();
}
~ProxyClass()
{
delete m_realClass;
}
};
//客户端:
int main()
{
ProxyClass* test=new ProxyClass();
test->Request();
return 0;
}