代理模式
来源:互联网 发布:mac如何设置手机铃声 编辑:程序博客网 时间:2024/06/08 08:39
代理模式,是结构型的设计模式之一,它可以为其他对象提供一种代理(Proxy)以控制对这个对象的访问。
所谓代理,是指具有与代理元(被代理的对象)具有相同接口的类,客户端必须通过代理与被代理的目标类交互,而代理一般在交互的过程中(交互前后),进行某些特别的处理。
角色及职责
subject(抽象主题角色):
真实主题与代理主题的共同接口。
RealSubject(真实主题角色):
定义了代理角色所代表的真实对象。
Proxy(代理主题角色):
含有对真实主题角色的引用,代理角色通常在将客户端调用传递给真实主题对象之前或者之后执行某些操作,而不是单纯返回真实的对象。
适合于:
为其他对象提供一种代理以控制对这个对象的访问。
提示:a(代理类)中包含b类(真实类);a、b类提供协议类protocol (a和b的共同基类)。
案例
#include <iostream>using namespace std;class BookStore{ public: virtual void sailBook()=0;};class RealBookStore : public BookStore{public: virtual void sailBook() { cout<<"卖书"<<endl; }};/*A类中包含B类,A和B共同实现某种协议TaoBao代理中包含实际的书店RealBookStore*/class TaoBao: public BookStore{public: virtual void sailBook() { RealBookStore * rbs = new RealBookStore; onSail(); rbs->sailBook(); onSail(); } void onSail() { cout<<"双十一打折"<<endl; }private:};int main(){ BookStore * bs = new TaoBao; bs->sailBook(); delete bs; return 0;}
阅读全文
0 0
- 代理模式--动态代理
- 代理模式-静态代理
- 代理模式-静态代理
- 代理模式 & 动态代理
- 代理模式--静态代理
- 代理模式--动态代理
- 代理模式(动态代理)
- 代理模式-动态代理
- 代理模式-动态代理
- 代理模式动态代理
- 代理模式-静态代理
- 代理模式-动态代理
- 代理模式 -动态代理
- 代理模式---动态代理
- 代理模式-动态代理
- 代理模式--静态代理
- 代理模式!
- 代理模式
- QT treeview实现类似tableview的效果
- com.opensymphony.xwork2.interceptor.ParametersInterceptor error(未完成)
- SVN学习(1)—SCM的介绍
- 【快搭】安装JAVA-JDK配置-JDK环境变量
- Karma-jasmine前端测试工具的配置(windows环境下)
- 代理模式
- Mysql更改密码
- 安装Eclipse、tomcat、umlet的过程中遇到的问题及解决措施
- Jobdu1144 Freckles(最小生成树,Kruskal算法)
- HDU 6136 Death Podracing (2017 Multi-Univ Training Contest 8)
- 关于项目导入的问题
- 从尾到头打印链表
- 【HDU6153 2017中国大学生程序设计竞赛
- uml类图基础