![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
文章平均质量分 80
js世界
这个作者很懒,什么都没留下…
展开
-
javascript 设计模式之迭代器模式
概念迭代器模式提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露该对象的内部表示。特点:为遍历不同数据结构的 “集合” 提供统一的接口;能遍历访问 “集合” 数据中的项,不关心项的数据结构从 Array.prototype.forEach 说起let arr = [1, 2, 3]arr.forEach((item) => { console.info(item) // 1 2 3})在数组上遍历是没有问题的,但将它作为在 NodeList 就会发现报错<d原创 2021-05-18 21:10:08 · 146 阅读 · 6 评论 -
javascript 设计模式之状态模式
概念状态模式:允许一个对象在其内部状态改变时改变它的行为,对象看起来似乎修改了它的类。从电灯说起需求:实现一个开关功能的电灯代码实现:class Light { constructor() { this.state = 'off' // 默认关灯 this.button = null } init() { const button = document.createElement('button') th原创 2021-05-18 16:53:21 · 267 阅读 · 0 评论 -
javascript 设计模式之策略模式
概念策略模式:定义一系列的算法(这些算法目标一致),把它们一个个封装起来,并且使它们可以相互替换。从公司绩效谈起每家公司年终奖的发放都会根据该年度员工表现给予一定的奖惩,当然 A 公司也不例外, A 公司的年终绩效制度如下:等级为 S 的,年终奖为工资的 4倍等级为 A 的,年终奖为工资的 3 倍等级为 B 的,年终奖为工资的 2 倍等级为 C 的,年终奖为工资的 0.3 倍代码实现如下:var calculateBonus = function (performanceLevel原创 2021-05-18 11:57:56 · 299 阅读 · 1 评论 -
javascript 适配、代理、装饰者模式的比较
适配器模式:将一个类(对象)的接口(方法或属性)转化成客户希望的另外一个接口(方法或属性),使得原本由于接口不兼容而不能一起工作的那些类(对象)可以正常协作。简单理解就是为兼容而生的 “转换器”。代理模式:使用者无权访问目标对象,中间加代理,通过代理做授权和控制装饰者(decorator)模式,又名装饰器模式,能够在不改变对象自身的基础上,在程序运行期间给对像动态的添加职责。与继承相比,装饰者是一种更轻便灵活的做法。适配器: 特点在于兼容,并不预处理请求,直接将请求转接给原方法,新方法与原.原创 2021-05-17 17:22:48 · 124 阅读 · 0 评论