现在的位置: 首页 > 综合 > 正文

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

2013年10月12日 ⁄ 综合 ⁄ 共 592字 ⁄ 字号 评论关闭

一、意图:

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

二、类图:

三、组成元素:

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");
}

抱歉!评论已关闭.