js代理模式:保护代理与虚拟代理
来源:互联网 发布:nginx rewrite是什么 编辑:程序博客网 时间:2024/04/28 14:06
<h1>代理模式</h1><p>代理模式是为一个对象提供一个代用品或占位符,以便控制对它的访问。</p><p>代理模式的关键是,当客户不方便访问一个对象或不满足需要的时候,提供一个替身对象来控制对这个对象的访问,客户实际上访问的是替身对象。替身对象对请求作出一些处理之后,再把请求转交给本体对象。</p><p>代理示例:小明追MM的故事</p><script>var Flower = function(){};var xiaoming = { sendFlower: function(target){ var flower = new Flower(); target.receiveFlower(flower); }};var b = { receiveFlower: function(flower){ a.listenGoodMod(function(){ //监听a的好心情 a.receiveFlower(flower); }) }};var a = { receiveFlower: function(flower){ console.log("收到le花:" + flower); }, listenGoodMod: function(fn){ setTimeout(function(){ //假设10秒之后a的心情变好 fn(); },10000) }};xiaoming.sendFlower(b);</script><p>保护代理:虽然这只是一个虚拟的例子,但我们可以从中找到代理模式的影子。代理b可以帮助a过滤掉一些请求,比如送花的人中年龄比较大的或者没有宝马的,这种请求就可以直接在代理b处倍拒绝。这种代理叫做保护代理。</p><p>虚拟代理:另外假设现实中的花价格不菲,导致在程序世界里,new Flower()也是一个代价昂贵的操作,那么我们把new Flower()的操作交给代理b去执行,代理b会选择在a心情好的时候在执行new Flower(),这是代理模式的另一种形式,叫做虚拟代理。虚拟代理会把一些开销很大的对象,延迟到真正需要它的时才去创建。代码如下</p><script> var b = { receiveFlower: function(){ a.listenGoodMood(function(){ //监听a的好心情 var flower = new Flower(); //延迟创建flower对象 a.receiveFlower(flower); }) } }</script><p>保护代理用于控制不同权限的对象对目标对象的访问,但在js并不容易实现保护代理,因为我们很难判断谁访问了某个对象。而虚拟代理是最常用的一种代理模式了。</p>
0 0
- js代理模式:保护代理与虚拟代理
- 代理模式 -保护代理 ProxyPattern
- 代理模式 -虚拟代理 ProxyPattern
- 代理模式-虚拟代理(image)
- 代理模式(三):远程代理,虚拟代理,缓冲代理
- 代理模式(三):远程代理,虚拟代理,缓冲代理
- 代理模式(三):远程代理,虚拟代理,缓冲代理
- 虚拟代理模式
- js代理模式-代理事件
- 代理模式:静态代理与动态代理
- 【代理模式】静态代理与动态代理
- 代理模式与动态代理
- 代理模式与动态代理
- 代理模式与动态代理
- 代理模式与动态代理
- 代理模式与动态代理
- 代理模式与动态代理
- 代理模式(Proxy Pattern)之虚拟代理
- 属性(Property)动画
- 为何与0xff进行与运算 .
- 数字正则匹配
- Struts2学习之2(请求参数的封装,类型转换,输入验证,自定义拦截器)
- 1 .17
- js代理模式:保护代理与虚拟代理
- jzoj3872 圣诞树 [转化问题+推式子、点分治]
- POJ 3292 Semi-prime H-numbers (筛法统计)
- 【BZOJ 1016】[JSOI2008]最小生成树计数 基尔霍夫矩阵||暴力
- HttpSession 常使用的方法与实现登录
- 读取.Properties配置文件的一些方法
- 根据Request获取客户端IP
- 关于成为一名嵌入式程序员的日常总结(1)
- 一个单向链表,输出该链表中倒数第k个结点,链表的倒数第0个结点为链表的尾指针