javascript代理模式

作者: smartphp | 来源:发表于2016-12-12 17:17 被阅读40次

代理模式是给对象提供一个代用品或占位符,以便控制对它的访问
参考《javascript模式设计与开发实践》

缓存代理

缓存代理可以为一些开销比较大的运算结果提供暂时的存储,下一次运算时如果传递参数和缓存的参数一致,则可是直接返回前面存储的运算结果

计算乘积的实例

var mult = function(){  //默认传递的arguments参数列表
        console.log( '开始计算乘积' );
        var a = 1;
        for ( var i = 0, l = arguments.length; i < l; i++ ){
            a = a * arguments[i];
        }
        return a;
    };
    mult( 2, 3 ); // 输出:6
    mult( 2, 3, 4 ); // 输出:24
    //现在加入缓存代理函数:

    var proxyMult = (function(){
        var cache = {};  //缓存对象
        return function(){
            var args = Array.prototype.join.call( arguments, ',' ); 
            if ( args in cache ){ //如果合并的参数在缓存中
                return cache[ args ]; //直接分会缓存数据
            }
            return cache[ args ] = mult.apply( this, arguments ); 
                        //调用函数之后存储到缓存对象中
        }
    })();

    proxyMult( 1, 2, 3, 4 ); // 输出:24  //第一次计算
    proxyMult( 1, 2, 3, 4 ); // 输出:24 //第二次计算,直接存缓存中获取

//这里的两个函数,multi负责计算,proxyMulti负责缓存的存储和读取。
//两个函数分功能完成对应的功能

相关文章

  • JavaScript设计模式四(代理模式)

    JavaScript设计模式四(代理模式) 代理模式的定义: 代理模式是为一个对象提供一个代用品或者占位符,以便对...

  • JavaScript 代理模式

    代理模式的关键是:当客户不方便直接访问一个对象或不满足需求的时候,提供一个替身对象来控制这个对象的访问,客户实际上...

  • javascript代理模式

    代理模式是给对象提供一个代用品或占位符,以便控制对它的访问参考《javascript模式设计与开发实践》 缓存代理...

  • javascript 代理模式

    所谓的的代理模式就是为一个对象找一个替代对象,以便对原对象进行访问。 使用代理的原因是我们不愿意或者不想对原对象进...

  • JavaScript代理模式

    代理模式是在请求对象与响应对象之间添加一个对象,负责接受请求,进行一定处理后再发送请求。如缓存,图片预加载,合并H...

  • 设计模式系列笔记-代理模式

    写在前面:本系列文章内容为《JavaScript设计模式与开发实践》一书学习笔记,感谢作者曾探 代理模式 代理模式...

  • Javascript设计模式-代理模式

    特点 1.使用者无法直接访问目标对象 2.使用者和目标对象之间加一层代理,通过代理来授权和控制 例如:访问gith...

  • JavaScript设计模式——代理模式

    代理模式 代理的概念 由于一个对象不能直接引用另一个对象,所以需要通过代理对象在这两个对象之间起到中介的作用 以上...

  • JavaScript设计模式——代理模式

    代理模式属于设计模式中结构型的设计模式; 定义:顾名思义就是为一个对象提供一个代用品或占位符,以便控制对它的访问!...

  • JavaScript设计模式——代理模式

    代理模式是为一个对象提供一个代用品或占位符,以便控制对它的访问。 代理模式是一种非常有意义的模式,在生活中可以找到...

网友评论

    本文标题:javascript代理模式

    本文链接:https://www.haomeiwen.com/subject/nknmmttx.html