代理模式
来源:互联网 发布:windows声音设置 编辑:程序博客网 时间:2024/06/15 08:14
1、概念:也叫Proxy,它可以为其他对象提供一种代理以控制这个对象的访问。所谓代理,是指具有代理元(被代理的对象)具有相同接口的类,客户端必须通过代理与被代理的目标类交互,而代理一般在交互的过程中(交互前后),进行某些特别的处理。
2、类图角色和职责:
(1)、subject(抽象主题角色):真实主题与代理主题的接口
(2)、RealSubject(真是主题角色):定义了代理角色所代表的真实对象。
(3)、Proxy(代理主题角色):含有对真实主题角色的引用,代理角色通常在将客户端调用传递给真实主题对象之前或者之后执行某些操作,而不是单纯返回真实的对象。
3、试用范围:为其他对象提供一种一种代理以控制这个对象的访问(提示:a中包含b类;a,b类实现协议类)
4、示例代码:
#include<iostream>using namespace std;class Subject{public:virtual void salebook() = 0;};class ReadlSubject:public Subject{public:virtual void salebook(){cout << "买书" << endl;}private:};// a中包含b类;a,b类实现协议类class dangdangProxy:public Subject{public:dangdangProxy(ReadlSubject *s){m_realSubject = s;}dangdangProxy(){}~dangdangProxy(){if (NULL!= m_realSubject){delete m_realSubject;m_realSubject = NULL;}}virtual void salebook(){m_realSubject = new ReadlSubject;dazhe();m_realSubject->salebook();dazhe();}void dazhe(){cout << "双十一打折" << endl;}private:ReadlSubject *m_realSubject;};int main(void){Subject *s = new dangdangProxy(new ReadlSubject);s->salebook();delete s;return 0;}
阅读全文
0 0
- 代理模式--动态代理
- 代理模式-静态代理
- 代理模式-静态代理
- 代理模式 & 动态代理
- 代理模式--静态代理
- 代理模式--动态代理
- 代理模式(动态代理)
- 代理模式-动态代理
- 代理模式-动态代理
- 代理模式动态代理
- 代理模式-静态代理
- 代理模式-动态代理
- 代理模式 -动态代理
- 代理模式---动态代理
- 代理模式-动态代理
- 代理模式--静态代理
- 代理模式!
- 代理模式
- 图书馆 SQL查询系统 提升训练
- 二叉搜索树与双向链表(中序遍历 ****)
- 当你选择技术,请记住,问题永远比想象多--数据库写入失败
- 分治法——二分查找
- MATLAB对于dll引用,显示未定义
- 代理模式
- QT智能指针QSharedPointer之中文文档不要忽悠我
- js学习日记(一)
- 【java集合】自己实现简易的HashSet
- Ajax 、comet,红宝书
- 函数栈帧的创建与销毁
- 随笔一篇
- op输入失调电压
- LeetCode 95. Unique Binary Search Trees II&96. Unique Binary Search Trees--动态规划,二叉树