02.代理模式 【PROXY PATTERN】
来源:互联网 发布:深圳科列 知乎 编辑:程序博客网 时间:2024/06/03 18:15
推荐文章:http://www.jellythink.com/archives/301
类图:
类解读:
1、Subject:定义了通用的接口
2、Proxy:负责和外部交互的实体类。
3、RealSubject:负责真正干活的实体类,Proxy会将具体的工作交予它。
4、Client:调用proxy部分(不一定是类),他不管活谁完成或怎样完成,他只会寻找Proxy并把任务交予它将其完成。
原理解读:
代理模式主要使用了多态,真正干活的类是被代理的类,而代理类只负责中间衔接工作。就像公司中接货的人是销售,真正干活的人是下边那忙程序员,销售会不会干实际的活,没有关系,只需要让你没有关系,只要客户满意就OK了,你管我怎么干。
#include <iostream>
using namespace std;
#define SAFE_DELETE(p) if (p) { delete p; p = NULL;}
class CSubject
{
public:
CSubject(){};
virtual ~CSubject(){}
virtual void Request() = 0;
};
class CRealSubject : public CSubject
{
public:
CRealSubject(){}
~CRealSubject(){}
void Request()
{
cout<<"CRealSubject Request"<<endl;
}
};
class CProxy : public CSubject
{
public:
CProxy() : m_pRealSubject(NULL){}
~CProxy()
{
SAFE_DELETE(m_pRealSubject);
}
void Request()
{
if (NULL == m_pRealSubject)
{
m_pRealSubject = new CRealSubject();
}
cout<<"CProxy Request"<<endl;
m_pRealSubject->Request();
}
private:
CRealSubject *m_pRealSubject;
};
int main()
{
CSubject *pSubject = new CProxy();
pSubject->Request();
SAFE_DELETE(pSubject);
}
- 02.代理模式 【PROXY PATTERN】
- 代理模式(Proxy Pattern)
- 代理模式(Proxy Pattern)
- Proxy Pattern (代理模式)
- Proxy pattern 代理模式
- 代理模式(Proxy pattern)
- 代理模式 Proxy Pattern
- 代理模式【Proxy Pattern】
- 代理模式(Proxy Pattern)
- 代理模式(PROXY PATTERN)
- 代理模式(Proxy Pattern)
- 代理模式(Proxy Pattern)
- 代理模式【Proxy Pattern】
- 代理模式【Proxy Pattern】
- proxy pattern 代理模式
- Proxy Pattern 代理模式
- 代理模式-Proxy Pattern
- 代理模式 Proxy Pattern
- APK安装过程及原理详解
- 论文摘抄 - Infobright
- ios 获取屏幕的属性和宽度
- UVA10123
- LeetCode Sum Root to Leaf Numbers
- 02.代理模式 【PROXY PATTERN】
- 代码优化之提构相同的代码
- c#用XmlDocument读取指定节点
- zabbix初学(1)
- Java 网络编程
- git使用指南
- Js_基础知识学习_02
- C语言性能优化与基础知识
- 64位/4核 MTK首款全模芯片MT6735规格揭晓