JavaScript 中常见设计模式整理

综合技术 2018-05-18 阅读原文


开发中,我们或多或少地接触了设计模式,但是很多时候不知道自己使用了哪种设计模式或者说该使用何种设计模式。本文意在梳理常见设计模式的特点,从而对它们有比较清晰的认知。

JavaScript 中常见设计模式

各设计模式关键词

看完了上述设计模式后,把它们的关键词特点罗列出来,以后提到某种设计模式,进而联想相应的关键词和例子,从而心中有数。

设计模式特点案例
单例模式一个类只能构造出唯一实例 创建菜单对象
策略模式根据不同参数可以命中不同的策略 动画库里的算法函数
代理模式代理对象和本体对象具有一致的接口 图片预加载
迭代器模式能获取聚合对象的顺序和元素 each([1, 2, 3], cb)
发布-订阅模式PubSub 瀑布流库
命令模式不同对象间约定好相应的接口 按钮和命令的分离
组合模式组合模式在对象间形成一致对待的树形结构 扫描文件夹
模板方法模式父类中定好执行顺序 咖啡和茶
享元模式减少创建实例的个数 男女模具试装
职责链模式通过请求第一个条件,会持续执行后续的条件,直到返回结果为止 if else 优化
中介者模式对象和对象之间借助第三方中介者进行通信 测试结束告知结果
装饰者模式动态地给函数赋能 天冷了穿衣服,热了脱衣服
状态模式每个状态建立一个类,状态改变会产生不同行为 电灯换挡
适配者模式一种数据结构改成另一种数据结构 枚举值接口变更

参考文献

*《JavaScript设计模式与开发实践》

稀土掘金

责编内容by:稀土掘金阅读原文】。感谢您的支持!

您可能感兴趣的

15 行代码实现并发控制(javascript) 前言 做过爬虫的都知道,要控制爬虫的请求并发量,其实也就是控制其爬取频率,以免被封IP,还有的就是以此来控制爬虫应用运行内存,否则一下子处理N个请求,内存分分钟会爆。 而 python爬虫一般用多线程来控制并发, 然而如果是no...
Terraform – FotD – floor() This is part of an ongoing series of posts documenting the built-in interpolation functions in Terraform. For more i...
Java、C/C++、JavaScript、PHP、Python分别用来开发什么?... 首先,我们先普及一下编程语言的基础知识。用任何编程语言来开发程序,都是为了让计算机干活,比如编写一篇文章,下载一首MP3等,而计算机干活的CPU只认识机器的指令,所以,尽管不同的编程语言差异极大,最后都得“翻译”成CPU可以执行的...
极光会客厅干货汇总:大型H5游戏如何登陆微信小游戏及游戏性能优化... 上周末,由极光网络主办的首期“极光会客厅”正式开门迎客。在本次的“2D小游戏开发实战技术沙龙”上,极光网络客户端主程陈策以及极光网络项目总监陈源向一众与会者分享了“大型H5游戏如何登陆微信小游戏”以及“游戏性能优化”的大量研发干货...
Egg 最新的静态资源方案 egg-view-assets 提供了通用的静态资源管理和本地开发方案,有如下功能 一体化本地开发方案 生产环境静态资源映射 和模板引擎集成 在约定下可使用多种构建工具,如webpack、 ro...