很高兴又在每晚的这个时候和博友有分享今天的学习成果了,感谢大家一直对Darren的支持,也希望各位博友们能将自己的好文章分享出来,在此Darren只是抛砖,希望大家不要吝啬自己的学识,江海之大,汇集于河流。不多说了,直接进入主题。
先介绍大力模式的定义:
为其它对象提供一个代理来控制对这个对象的访问。
定义是不是挺简单的?
下面送上代理模式的结构图
这个图也不难,大家一看都会看明白下面来讲一下代理模式的应用,当我看到这一块的时候我大吃一惊
,没想到一个小小的代理模式竟然有如此神通
第一:远程代理
为同一个对象在不同的地址空间提供局部代表,这样可以隐藏一个对象存在于不同地址空间的事实。
最简单的例子就是我们所熟知的Webservice。大家如果用过Webservice对这个理解应该不难。在这里就不多讲了。
第二:虚拟代理
是根据需要创建开销很大的对象。通过它来存放实例化需要保存很长时间的真实对象。这样可以达到性能的最优化。
最方便的例子就是你现在使用的浏览器,比如说你要打开一个很大的html文件时,里面可能有很多的文字和图片,但你还是可以很快的打开它,此时你看到的是所有的文字,图片需要一张张的下载再显示,此时你看到的图片显示的区域都是小框框,就是通过虚拟图片代理来代替真实的图片,此代理存储了真实对象的尺寸和图片路径。
此刻的我太吃惊了。
第三:安全代理
用来控制真实对象的访问权限。一般应用于对象具有不同的访问权限的时候。
第四:智能指引
当调用真实对象时,代理做另外的一些事,比如说信息的过滤。计算对象的真实引用次数,这样当该对象没有被引用时可以及时的释放它。或当第一次引用一个持久话的对象时,将它装入内存:或者访问一个对象时,检测该对象是否已经锁定。以确保其它对象不能改变它。
说白了,代理模式就是一个真实对象的代表,就和中国的人大代表可以代表人民开人大大会一样。
到此我们的代理模式就讲解完了,希望能给各位博友带来更多的收获。感谢大家一直对Darren的支持。天色已晚先休息了各位
,明天同一时刻不见不散。