设计模式实现——代理模式


代理模式简介

代理模式就是自己不愿意做,把自己的工作委托给别人来做。就像快递公司不自己送货,把货物给区域代理一样。

优点:
1、可以使自身更加安全,只把部分权限交给代理。其他所有人想知道我都必须进过代理,用于控制权限访问。
2、可以用于延时生成对象,把生成对象开销大的对象生成放缓,在初始化时只给一个null或者简单的拷贝,在使用时再具体生成。
3、可以用于智能指针,在访问对象时可以增加一些附加的操作,可以监控引用次数等。
4、为一个对象在不同的地址空间中提供局部代理。


模式对比

代理模式与适配器模式十分相似,都是将任务给第三方来处理,不同之处在于适配器为所适配的对象提供不同的接口,代理模式提供的接口是一样的。所使用的目的不同,代理是为了隐藏自己或者是为了优化性能;而适配器是为了使接口兼容。

类图



实例分析

在读取图片过程中,初始化读入时间过长,为了及时显示其他的内容,我们可以暂且不初始化图片。使用代理来操作它。

实际调用过程:

void PatternDemo(){
	MImage* image = new ImageProxy;
	image->showImage();
}



阅读更多
个人分类: 设计模式
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭