美文网首页
JavaScript的代理模式

JavaScript的代理模式

作者: 零壹生活 | 来源:发表于2016-12-04 22:49 被阅读14次

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

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

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

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

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

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

    相关文章

      网友评论

          本文标题:JavaScript的代理模式

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