代理模式开发实践

作者: 悟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中。当第二次价格列表一样的时候,这样就可以快速的得到结果。

相关文章

  • 代理模式开发实践

    代理模式是为一个对象提供一个代用品或占位符,以便控制对它的访问。 写一个缓存代理计算价格的例子: 上面的例子用pr...

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

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

  • javascript代理模式

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

  • 代理模式

    摘自《JavaScript设计模式与开发实践》 代理模式是为一个对象提供一个代用品或占位符,以便控制对它的访问。 ...

  • 代理模式

    参考:https://www.imooc.com/learn/214代理模式代码实践 目录 1、代理模式基本概念 ...

  • 6代理模式

    来源:JavaScript设计模式与开发实践 代理模式是为一个对象提供一个代用品或占位符,以便控制对它的访问。 虚...

  • 代理模式——远程代理(Java RMI)

    代理模式——远程代理(Java RMI) @(设计模式) 一、远程代理——大使 在日常开发中,我们经常会有本地服务...

  • 《JavaScript设计模式与开发实践》之代理模式

    代理模式是为一个对象提供一个代用品或占位符,以便控制对它的访问。 保护代理: 控制不同权限的对象对目标对象的访问;...

  • iOS开发中的几种模式总结

    1.代理模式 在开发中我们经常使用代理,或自己写个代理,而代理属性都用weak(assign)修饰,看过有些开发者...

  • 敏捷开发模式与瀑布开发模式

    再次去学习了敏捷开发模式(缺乏实践),来谈谈敏捷开发模式与传统的瀑布开发模式。 敏捷开发模式 在瀑布开发模式的基础...

网友评论

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

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