大话设计模式-Study-Tips-第四章-代理模式
2017-08-09 15:10
543 查看
一、UML图
二、包含的角色
Suject类,定义了RealSubject和Proxy的共用接口
RealSubject类,定义了Proxy所代理的真实实体
Proxy类,代理类。
三、特点
定义:代理模式(Proxy)为其他对象提供一种代理,用来控制对这个对象的访问。
应用场合:
(1)远程代理,为一个对象在不同地址空间提供局部代表,这样可以隐藏一个对象存在于不同地址空间的事实。
(2)虚拟代理,根据需要创建开销很大的对象。通过它来存放实例化需要很长时间的真实对象。
(3)安全代理,用来控制真实对象访问时候的权限
(4)智能指引,调用真实对象时候,代理处理另外的事情。
四、代码实现
c#版
Suject类
RealSubject类
c++版
Subject类
Proxy类
调用方式
二、包含的角色
Suject类,定义了RealSubject和Proxy的共用接口
RealSubject类,定义了Proxy所代理的真实实体
Proxy类,代理类。
三、特点
定义:代理模式(Proxy)为其他对象提供一种代理,用来控制对这个对象的访问。
应用场合:
(1)远程代理,为一个对象在不同地址空间提供局部代表,这样可以隐藏一个对象存在于不同地址空间的事实。
(2)虚拟代理,根据需要创建开销很大的对象。通过它来存放实例化需要很长时间的真实对象。
(3)安全代理,用来控制真实对象访问时候的权限
(4)智能指引,调用真实对象时候,代理处理另外的事情。
四、代码实现
c#版
Suject类
public abstract class Subject { public abstract void Request(); }
RealSubject类
public class RealSubject : Subject { public override void Request() { Console.WriteLine("RealRequst"); } }Proxy类
public class Proxy : Subject { private RealSubject realSubject ; public override void Request() { if (realSubject == null) { realSubject = new RealSubject(); } realSubject.Request(); } }调用方式
Proxy proxy = new Proxy(); proxy.Request(); Console.Read();
c++版
Subject类
class Subject { public: virtual void Request(); };RealSubject类
class RealSubject : public Subject { public: void Request(); };
#include "RealSubject.h" #include <iostream> void RealSubject::Request() { printf("RealRequst"); }
Proxy类
#include "Suject.h" #include "RealSubject.h" class Proxy : public Subject { public: void Request(); private: RealSubject* realSubject; };
#include "Proxy.h" void Proxy::Request() { { if (realSubject == NULL) { realSubject = new RealSubject(); } realSubject->Request(); }
调用方式
int main() { Proxy* proxy = new Proxy(); proxy->Request(); return 0; }
相关文章推荐
- 大话设计模式-Study-Tips-第三章-装饰模式
- 大话设计模式-Study-Tips-第二章-策略模式
- 大话设计模式之代理模式
- 大话设计模式C++版——代理模式
- 大话设计模式_代理模式
- 《大话设计模式》--代理模式
- 大话设计模式之代理模式
- 《大话设计模式》读书笔记(C++代码实现) 第七章:代理模式
- 大话设计模式3 装饰模式 代理模式
- 八、结构型模式之适配器、桥接、代理-----《大话设计模式》
- 大话设计模式C++实现-第7章-代理模式
- 大话设计模式-第07章 为别人做嫁衣--代理模式
- 大话设计模式C++版——代理模式
- 《大话设计模式》读书笔记:代理模式与Java的Proxy动态代理
- 大话设计模式-代理模式
- [大话设计模式] 第7章: 代理模式
- 大话设计模式C++版——代理模式
- 四、大话设计模式 之 代理模式
- 《大话设计模式》第三篇之代理模式
- 大话设计模式第四章外观模式总结