摘要:开发中,我们或多或少地接触了设计模式,但是很多时候不知道自己使用了哪种设计模式或者说该使用何种设计模式。本文意在梳理常见设计模式的特点,从而对它们有比较清晰的认知。
开发中,我们或多或少地接触了设计模式,但是很多时候不知道自己使用了哪种设计模式或者说该使用何种设计模式。本文意在梳理常见设计模式的特点,从而对它们有比较清晰的认知。
JavaScript 中常见设计模式单例模式
策略模式
代理模式
迭代器模式
发布-订阅模式
命令模式
组合模式
模板方法模式
享元模式
职责链模式
中介者模式
装饰者模式
状态模式
适配者模式
观察者模式
各设计模式关键词看完了上述设计模式后,把它们的关键词特点罗列出来,以后提到某种设计模式,进而联想相应的关键词和例子,从而心中有数。
设计模式 | 特点 | 案例 |
---|---|---|
单例模式 | 一个类只能构造出唯一实例 | 创建菜单对象 |
策略模式 | 根据不同参数可以命中不同的策略 | 动画库里的算法函数 |
代理模式 | 代理对象和本体对象具有一致的接口 | 图片预加载 |
迭代器模式 | 能获取聚合对象的顺序和元素 | each([1, 2, 3], cb) |
发布-订阅模式 | PubSub | 瀑布流库 |
命令模式 | 不同对象间约定好相应的接口 | 按钮和命令的分离 |
组合模式 | 组合模式在对象间形成一致对待的树形结构 | 扫描文件夹 |
模板方法模式 | 父类中定好执行顺序 | 咖啡和茶 |
享元模式 | 减少创建实例的个数 | 男女模具试装 |
职责链模式 | 通过请求第一个条件,会持续执行后续的条件,直到返回结果为止 | if else 优化 |
中介者模式 | 对象和对象之间借助第三方中介者进行通信 | 测试结束告知结果 |
装饰者模式 | 动态地给函数赋能 | 天冷了穿衣服,热了脱衣服 |
状态模式 | 每个状态建立一个类,状态改变会产生不同行为 | 电灯换挡 |
适配者模式 | 一种数据结构改成另一种数据结构 | 枚举值接口变更 |
观察者模式 | 当观察对象发生变化时自动调用相关函数 | vue 双向绑定 |
*《JavaScript设计模式与开发实践》
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/95092.html
摘要:我对知乎前端相关问题的十问十答张鑫旭张鑫旭大神对知乎上经典的个前端问题的回答。作者对如何避免常见的错误,难以发现的问题,以及性能问题和不好的实践给出了相应的建议。但并不是本身有问题,被标准定义的是极好的。 这一次,彻底弄懂 JavaScript 执行机制 本文的目的就是要保证你彻底弄懂javascript的执行机制,如果读完本文还不懂,可以揍我。 不论你是javascript新手还是老...
摘要:标准模式的排版和运作模式都是以该浏览器支持的最高标准运行。使用之前需要考虑这两个缺点。数据的有效期不同。在设置的过期时间之前一直有效,即使窗口或者浏览器关闭。仅在浏览器窗口关闭之前有效。 一、HTML常见题目01、Doctype作用?严格模式与混杂模式如何区分?它们有何意义?02、 HTML5 为什么只需要写 !DOCTYPE HTML?03、行内元素有哪些?块级元素有哪些?空(voi...
摘要:标准模式的排版和运作模式都是以该浏览器支持的最高标准运行。使用之前需要考虑这两个缺点。数据的有效期不同。在设置的过期时间之前一直有效,即使窗口或者浏览器关闭。仅在浏览器窗口关闭之前有效。 一、HTML常见题目01、Doctype作用?严格模式与混杂模式如何区分?它们有何意义?02、 HTML5 为什么只需要写 !DOCTYPE HTML?03、行内元素有哪些?块级元素有哪些?空(voi...
摘要:标准模式的排版和运作模式都是以该浏览器支持的最高标准运行。使用之前需要考虑这两个缺点。数据的有效期不同。在设置的过期时间之前一直有效,即使窗口或者浏览器关闭。仅在浏览器窗口关闭之前有效。 一、HTML常见题目01、Doctype作用?严格模式与混杂模式如何区分?它们有何意义?02、 HTML5 为什么只需要写 !DOCTYPE HTML?03、行内元素有哪些?块级元素有哪些?空(voi...
阅读 2852·2021-11-15 18:02
阅读 3776·2021-10-14 09:43
阅读 3709·2021-09-08 10:41
阅读 2502·2019-08-30 15:53
阅读 1788·2019-08-30 14:14
阅读 1925·2019-08-29 16:12
阅读 3122·2019-08-29 14:03
阅读 1262·2019-08-29 13:46