五、大话设计模式之代理模式

代理模式

GOOD:

远程代理,可以隐藏一个对象在不同地址空间的事实
虚拟代理:通过代理来存放需要很长时间实例化的对象
安全代理:用来控制真实对象的访问权限
智能引用:当调用真实对象时,代理处理另外一些事

五、大话设计模式之代理模式_第1张图片

源码:


//定义接口
class Interface
{
public:
	virtual void Request() = 0;
};

//真实类
class RealClass : public Interface
{
public:
	virtual void Request()
	{
		cout << "真实的的请求" << endl;
	}

};
//代理类
class ProxyClass : public Interface
{
public:
	virtual void Request()
	{
		m_realClass = new RealClass();
		m_realClass->Request();
		delete m_realClass;
	}

private:
	RealClass* m_realClass;

};




int main()
{
	ProxyClass *test = new ProxyClass();
	test->Request();
	system("pause");
    return 0;
}

运行结果:

五、大话设计模式之代理模式_第2张图片

你可能感兴趣的:(设计模式)