JavaScript的代理模式

今天学习了JavaScript的代理模式,简单来说就是在目标函数之上多了一个经理人函数。你不能直接调取目标函数,应该先调取经理人函数,然后经过判断和前置处理后,再通过经理人函数调取目标函数。

如果你仔细阅读上面的解释,就能发现其实经理人函数代码是可以直接写在目标函数中的,并且在最终实现的功能也没有什么差别。但这么做的话就违背了面向对象设计中的一个原则--单一职责原则

单一职责原则:就一个类而言,应该仅有一个引起它变化的原因。如果一个对象承担了多项职责,就意味着这个对象将变得巨大,引起它变化的原因可能会有多个。

一个函数如果包含太多的功能的,那后期维护将是一个灾难直到变成无法维护为止。所以有些懒还是不要偷为好,要不然就是在给自己找麻烦。

此外,代理模式在JavaScript中另一个重要的应用场景是“缓存代理”,既为一些开销大的运算结果提供暂时的存储,在下次运算时,如果传递进来的参数跟之前一致,则可以直接返回前面存储的运算结果。在需要重复计算结果的场景中,该模式的使用效率将是最高的。

最后,不需要一开始就编写代理函数。只有存在保护或限制目标函数访问需求的时候,在编写即可。

最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 工厂模式类似于现实生活中的工厂可以产生大量相似的商品,去做同样的事情,实现同样的效果;这时候需要使用工厂模式。简单...
    舟渔行舟阅读 8,252评论 2赞 17
  • 《JavaScript设计模式与开发实践》作者:曾探 系统的介绍了各种模式,以及js中的实现、应用,以及超大量高质...
    undefinedR阅读 939评论 0赞 10
  • 一次时间相对长的出差,周四出发,周日才回来。离家乡虽然近了,时间上不允许回老家。再一次把工作与外拍的项目结合实施。...
    芥空阅读 315评论 0赞 0
  • 妈妈,母亲节快乐~
    布衣阅读 170评论 0赞 1
  • 11月11日,这两年开始被人们追捧的一个日子。两重意义:1.淘宝折扣最大的一天,据说便宜的让女人想剁手。2.单身狗...
    万华伟阅读 293评论 0赞 0

友情链接更多精彩内容