摘要:代理模式代理模式是为一个对象提供一个代用品或者占位符以便控制对它的访问引入代理模式,其实是为了实现单一职责的面向对象设计原则。
代理模式
代理模式是为一个对象提供一个代用品或者占位符, 以便控制对它的访问
引入代理模式,其实是为了实现单一职责的面向对象设计原则。
虚拟代理
将一些开销很大的对象, 延迟到正真需要的时候执行
// 针对大图 增加loading图 // 创建 img var myImage = (function () { var imgNode = document.createElement("img"); document.body.appendChild(imgNode); return { // 直接设置 img 的src setSrc: function (src) { imgNode.src = src; } } })(); // 代理对象 var proxyImage = (function () { var img = new Image(); img.onload = function () { // 在代理中等到图片加载完在设置正真的图片地址 myImage.setSrc(this.src); }; return { setSrc: function (src) { myImage.setSrc("./loading.jpg"); img.src = src; } } })(); proxyImage.setSrc("https://xxx.com/realImage.png")
缓存代理
可以为一些开销大的运算结果提供暂时的存储
// 体现了 单一职责原则, // 原函数 var multi = function () { var a = 1; for (var i = 0, l = arguments.length; i < l; i++) { a = a * arguments[i]; } console.log(a); return a; } // 代理函数 var proxyMulti = (function () { var cache = {}; return function () { var args = Array.prototype.join.call(arguments, ","); if (args in cache) { return cache[args]; } return cache[args] = multi.apply(this, arguments); } })(); proxyMulti(1, 2, 3, 4, 5); proxyMulti(1, 2, 3, 4, 5);
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/109255.html
摘要:单例模式单例模式就是保证一个类仅有一个实例并提供一个访问它的全局访问点其最大的特点就是永远只返回一个实例实例通过来获取类的唯一对象其缺点也明显增加了类的不透明性透明的单例模式最终会被返回使用代理实现单例模式将负责管理单例的逻辑移到了代理类中 单例模式 单例模式 就是保证一个类仅有一个实例, 并提供一个访问它的全局访问点. 其最大的特点就是 永远只返回一个实例 var Sin...
摘要:保护代理和虚拟代理保护代理当有许多需求要向某对象发出一些请求时,可以设置保护代理,通过一些条件判断对请求进行过滤。虚拟代理在程序中可以能有一些代价昂贵的操作。而虚拟代理是最常用的一种代理模式。 代理模式 代理模式是为一个对象提供一个代用品或占位符,以便控制对它的访问。 保护代理和虚拟代理 保护代理:当有许多需求要向某对象发出一些请求时,可以设置保护代理,通过一些条件判断对请求进行过滤。...
摘要:命令模式指的是一个执行某些特定事情的指令设计模式的主题总是把不变的事物和变化的事物分离开来在中函数作为一等对象所以命令模式其实是回调函数的一个面向对象的替代品设置命令命令集合刷新菜单界面命令触发条件接受者绑定命令 命令模式 指的是一个执行某些特定事情的指令 设计模式的主题: 总是把不变的事物和变化的事物分离开来 在javascript 中, 函数作为一等对象, 所以, 命令模式其实是...
摘要:迭代器模式顺序访问一个对象的对象的内部可分为内部迭代器和外部迭代器内部迭代器就是常见的或者外部迭代器实现了简单实现 迭代器模式 顺序访问一个对象的 对象的内部 可分为内部迭代器 和 外部迭代器 内部迭代器 就是常见的 forEach(), 或者 $.each() function forEach(arr, callback) { var i = 0, len...
阅读 2577·2021-11-23 09:51
阅读 807·2021-09-24 10:37
阅读 3564·2021-09-02 15:15
阅读 1943·2019-08-30 13:03
阅读 1862·2019-08-29 15:41
阅读 2584·2019-08-29 14:12
阅读 1382·2019-08-29 11:19
阅读 3278·2019-08-26 13:39