代理模式开发实践

作者: 悟C | 来源:发表于2018-09-17 21:26 被阅读0次

    代理模式是为一个对象提供一个代用品或占位符,以便控制对它的访问。

    写一个缓存代理计算价格的例子:

    var prices = function() {
      console.log('开始计算总价');
      var a = 0;
      for (var i = 0, l = arguments.length; i < l; i++) {
        a = a + arguments[i];
      }
      return a;
    }
    
    var proxyCalculation = (function() {
      var cache = {};
      return function() {
        var args = Array.prototype.join.call(arguments, ',');
        if (args in cache) {
          return cache[args];
        }
        return cache[args] = prices.apply(this, arguments);
      }
    })();
    
    console.log(proxyCalculation(10, 20));
    console.log(proxyCalculation(10, 20));
    // 开始计算总价
    // 30
    // 30
    

    上面的例子用proxyCalculation来代理prices,把缓存功能设置在proxyCalculation中。当第二次价格列表一样的时候,这样就可以快速的得到结果。

    相关文章

      网友评论

        本文标题:代理模式开发实践

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