JavaScript 进阶实战课
石川
JavaScript Patterns and Anti-Patterns 等开源项目创建者,O'Reilly 技术评审
15066 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 47 讲
开篇词 (1讲)
JavaScript 进阶实战课
15
15
1.0x
00:00/00:00
登录|注册

23 | 结构型:通过jQuery看结构型模式

你好,我是石川。
今天,我带你顺着上一节的内容,再来看看在 GoF(四人组)的《设计模式:可复用面向对象软件的基础》这本书中介绍的另外几种经典的结构型设计模式。我们可以通过 jQuery 来看看结构型的设计,说到这里,你可能会说 jQuery 可以算是被吐槽比较多的一个框架了,它有什么参考价值呢?但是我认为用户是用脚投票的,虽然很多人在骂着 jQuery,但是同时也在用着。这也证明了它从开发上提供给人们的便捷,作为优点要大于它的缺点。其实,它的很多让人们“恨不释手”的设计背后都能看到结构型的设计模式。今天,我们就一起来看看吧。

几种经典的结构型模式

我们先来看看几种经典的结构型模式。分别是享元、门面和组合模式。

享元模式(flyweight)

享元模式(flyweight)的核心思想是通过减少对象的创建数量来节约内存
享元模式最早是保罗·考尔德和马克·林顿在 1990 年提出的。喜欢看拳击的朋友可能知道享元的英文单词 flyweight,其实是拳击里面的一个重量等级,叫做“特轻量”,也就是重量低于 112 磅的拳手。我们来看一个 UFC 比赛画面,一个重量级(heavy weight)和特轻量级 (flyweight)的选手放在一起对比,感受就更直观了。所以顾名思义,该模式旨在帮助我们实现轻量级的内存占用。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文深入介绍了享元模式(flyweight)在jQuery中的应用,重点强调了通过减少对象创建数量来节约内存,并优化共享数据的代码以最大限度减少内存使用。通过租车和事件处理两个例子,分别从数据角度和事件处理角度解释了享元模式的应用。在事件处理角度的应用中,还介绍了构建accordion和Facebook的jQuery.single的概念。此外,还涉及了门面模式、组合模式以及包装器模式中的装饰器和适配器的原理和实现。通过具体的代码示例和实际场景的解释,读者能更直观地理解结构型设计模式的应用,以及jQuery在其中的作用。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《JavaScript 进阶实战课》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(2)

  • 最新
  • 精选
  • 郭慧娟
    Facebook ... 减少一层抽象,或避说呢,免创建新的 jQuery 对象。这里文案有问题

    编辑回复: 谢谢反馈,这里已更正

    2022-11-10归属地:北京
  • FSS
    // 如果车型已知,就返回vin;未知就创建var createCar = (model, maker, isbn) => { 形参isbn是否应该为vin
    2023-12-12归属地:广东
收起评论
显示
设置
留言
2
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部