设计模式----------------------代理模式
2015-06-25 10:46
417 查看
代理模式的优点:
远程代理,可以隐藏一个对象在不同地址空间的事实。
虚拟代理,可以通过代理来存放需要很长时间实例化的对象。
安全代理,用来控制真实对象的访问权限。
智能代理:当调用真实对象是,代理处理另外一个事情
具体代码如下:
// Strategy.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <iostream>
#include<string>
using namespace std;
//定义接口
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:
virtual void Request(){
m_realclass = new RealClass();
m_realclass->Request();
delete m_realclass;
}
};
int main(){
ProxyClass *test = new ProxyClass;
test->Request();
getchar();
getchar();
return 0;
}
远程代理,可以隐藏一个对象在不同地址空间的事实。
虚拟代理,可以通过代理来存放需要很长时间实例化的对象。
安全代理,用来控制真实对象的访问权限。
智能代理:当调用真实对象是,代理处理另外一个事情
具体代码如下:
// Strategy.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <iostream>
#include<string>
using namespace std;
//定义接口
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:
virtual void Request(){
m_realclass = new RealClass();
m_realclass->Request();
delete m_realclass;
}
};
int main(){
ProxyClass *test = new ProxyClass;
test->Request();
getchar();
getchar();
return 0;
}
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- PropertyChangeListener简单理解
- 关于指针的一些事情
- 什么是设计模式
- 设计模式之创建型模式 - 特别的变量问题
- 设计模式之创建型模式
- 浅谈设计模式的学习
- c++ primer 第五版 笔记前言
- share_ptr的几个注意点
- Lua教程(一):在C++中嵌入Lua脚本
- Lua教程(二):C++和Lua相互传递数据示例
- C++联合体转换成C#结构的实现方法
- C++编写简单的打靶游戏
- C++变位词问题分析
- C/C++数据对齐详细解析
- C++基于栈实现铁轨问题
- C++中引用的使用总结
- C++中调用Lua函数实例
- Lua和C++的通信流程代码实例
- C与C++之间相互调用实例方法讲解