设计模式之代理模式学习分享[Darren]

很高兴又在每晚的这个时候和博友有分享今天的学习成果了,感谢大家一直对Darren的支持,也希望各位博友们能将自己的好文章分享出来,在此Darren只是抛砖,希望大家不要吝啬自己的学识,江海之大,汇集于河流。不多说了,直接进入主题。

先介绍大力模式的定义:

为其它对象提供一个代理来控制对这个对象的访问。

定义是不是挺简单的?微笑

下面送上代理模式的结构图

设计模式之代理模式学习分享[Darren]_第1张图片

微笑这个图也不难,大家一看都会看明白

下面来讲一下代理模式的应用,当我看到这一块的时候我大吃一惊惊讶,没想到一个小小的代理模式竟然有如此神通

第一:远程代理

为同一个对象在不同的地址空间提供局部代表,这样可以隐藏一个对象存在于不同地址空间的事实。

最简单的例子就是我们所熟知的Webservice。大家如果用过Webservice对这个理解应该不难。在这里就不多讲了。微笑

第二:虚拟代理

是根据需要创建开销很大的对象。通过它来存放实例化需要保存很长时间的真实对象。这样可以达到性能的最优化。

最方便的例子就是你现在使用的浏览器,比如说你要打开一个很大的html文件时,里面可能有很多的文字和图片,但你还是可以很快的打开它,此时你看到的是所有的文字,图片需要一张张的下载再显示,此时你看到的图片显示的区域都是小框框,就是通过虚拟图片代理来代替真实的图片,此代理存储了真实对象的尺寸和图片路径。惊讶此刻的我太吃惊了。

第三:安全代理

用来控制真实对象的访问权限。一般应用于对象具有不同的访问权限的时候。

第四:智能指引

当调用真实对象时,代理做另外的一些事,比如说信息的过滤。计算对象的真实引用次数,这样当该对象没有被引用时可以及时的释放它。或当第一次引用一个持久话的对象时,将它装入内存:或者访问一个对象时,检测该对象是否已经锁定。以确保其它对象不能改变它。

说白了,代理模式就是一个真实对象的代表,就和中国的人大代表可以代表人民开人大大会一样。吐舌头

到此我们的代理模式就讲解完了,希望能给各位博友带来更多的收获。感谢大家一直对Darren的支持。天色已晚先休息了各位再见,明天同一时刻不见不散。

最近在做网站优化,希望各位多多支持:可怜。支持我的就再帮我点下下面的链接吧。谢谢了。

Darren和大家一起奋斗

你可能感兴趣的:(设计模式)