Proxy(代理)设计模式
来源:互联网 发布:365抽奖软件破解版 编辑:程序博客网 时间:2024/04/30 05:25
声明:本博文篇幅短,适合review。
一、概念
为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。
二、模式结构图
class Subject{public:virtual ~Subject();virtual void request() = 0;protected:Subject();};class RealSubject : public Subject{public:RealSubject();~RealSubject();void request(){cout<<"RealSubject request"<<endl;}};class Proxy : public Subject{public:Proxy();Proxy(Subject * sub){mSub = sub;}~Proxy(){delete mSub;}void request(){cout<<"Proxy request"<<endl;mSub->request();}private:Subject * mSub;};void main(){Subject * sub = new RealSubject();Proxy * p = new Proxy(sub);p->request();}
三、例子
class Browser{public:virtual ~Browser();virtual void open() = 0;protected:Browser();};class GoogleBrowser : public Browser{public:GoogleBrowser();~GoogleBrowser();void open(){cout<<"GoogleBrowser open"<<endl;}};class Shortcut : public Browser{public:Shortcut();Shortcut(Browser * brow){mBrow = brow;}~Shortcut(){delete mBrow;}void open(){cout<<"Shortcut open"<<endl;mBrow->open();}private:Browser * mBrow;};void main(){Shortcut * sc = new Shortcut(new GoogleBrowser());sc->open();}
四、优缺点
1、优点
a、扩展性高
b、代理对象可以在客户端和目标对象之间起到中介的作用,这样起到了中介的作用和保护了目标对象的作用
c、责任清晰。真实的角色就是实现实际的业务逻辑,不用关心其他非本职责的事务
2、缺点
a、实现代理类也需要额外的工作,从而增加了系统的实现复杂度
b、在客户端和目标对象增加一个代理对象,会造成请求处理速度变慢
1 0
- Proxy代理设计模式
- 设计模式 - 代理(Proxy)
- 代理设计模式--Proxy
- Proxy(代理)设计模式
- 代理 proxy 设计模式
- 设计模式----Proxy(代理)模式
- 设计模式--代理模式(Proxy)
- 设计模式 -- 代理模式(Proxy)
- 设计模式--代理模式(Proxy)
- [设计模式]Proxy代理模式
- 设计模式--Proxy(代理模式)
- [设计模式]代理模式(Proxy)
- 设计模式-Proxy代理模式
- 设计模式--proxy代理模式
- 设计模式 -- 代理模式 Proxy
- 设计模式-代理模式(Proxy)
- [设计模式] 代理模式(Proxy)
- 设计模式--代理模式(Proxy)
- 文件系统
- 两个栈实现队列
- Java 通过 Jni 调用 C++代码
- Spring模拟aop静态代理案例<一>
- Cocos2d-x-------------------------------------------Label数字文字描边
- Proxy(代理)设计模式
- READING NOTE: Object Detection by Labeling Superpixels
- Android SDK 开发范例大全 ---3.14控制不同的文字字体
- 旧I/O实现的通道之Flip_clear VS 输入输出通道联通
- Linux下安装两个mysql5.5以上版本
- 初识云计算的三种服务模式 (IaaS SaaS PaaS)
- (java)Pascal's Triangle
- myeclipse自动生成实体类
- nginx日志简单认识