设计模式——代理模式(C++实现)
2023-09-14 09:07:07 时间
#include <iostream>
#include <string>
using namespace std;
class CSubject
{
public:
virtual void Request() = 0;
};
class CRealSubject: public CSubject
{
public:
virtual void Request()
{
cout<< "ReadSubject request....."<< endl;
}
};
class CProxy: public CSubject
{
public:
CProxy()
{
m_pstRealSubject = new CRealSubject();
}
virtual void Request()
{
if (m_pstRealSubject == NULL)
m_pstRealSubject = new CRealSubject();
cout<< "CProxy Request...."<< endl;
m_pstRealSubject->Request();
}
private:
CRealSubject* m_pstRealSubject;
};
int main(int argc, char* argv[])
{
CProxy* pstProxy = new CProxy();
pstProxy->Request();
return 0;
}
/
[root@ ~/learn_code/design_pattern/5_proxy]$ ./proxy
CProxy Request....
ReadSubject request.....
参考:http://design-patterns.readthedocs.io/zh_CN/latest/structural_patterns/proxy.html
相关文章
- C++ 递归位置排列算法及其应用
- Python与C/C++相互调用(转)
- C++ 标准库类型-String,Vector and Bitset
- Draw the RGB data from kinect C++ via opengl
- C++工程中引入levelDB
- C++设计模式9--代理模式--万能的中间层
- C++设计模式详解之命令模式解析
- 【华为OD机试 2023】 最多几个直角三角形(C++ Java JavaScript Python)
- 用C设计,用C++编码
- C++之include<iostream>与include<iostream.h>
- C++代理模式
- 【C++提高】static_cast 静态类型转换
- C++基础知识要点--变量和基本类型 (Primer C++ 第五版阅读笔记)
- C/C++学习笔记十二 Input and Output (I/O)(5)