当前位置:主页 > 计算机电子书 > javascript > JavaScript下载
JavaScript设计模式与开发实践

JavaScript设计模式与开发实践 PDF 清晰中文版

  • 更新:2021-12-27
  • 大小:8.1 MB
  • 类别:JavaScript
  • 作者:曾探
  • 出版:人民邮电出版社
  • 格式:PDF

  • 资源介绍
  • 相关推荐

内容简介

本书在尊重《设计模式》初衷的同时,全面介绍了16种比较适合JavaScript程序员的常用设计模式,讲解了JavaScript面向对象和函数式编程的基础知识,介绍了面向对象的设计原理及其在设计模式中的体现,分享了日常开发中的面向对象编程技巧和代码重构。这本书将教你如何将经典的设计模式应用到JavaScript语言中,写出美观高效的代码、以及结构化和可维护的代码。

目录

  • 第一部分基础知识
  • 第1章面向对象的JavaScript
  • 1.1动态类型语言和鸭子类型2
  • 1.2多态4
  • 1.3封装12
  • 1.4原型模式和基于原型继承的JavaScript对象系统14
  • 第2章this、call和apply
  • 2.1this24
  • 2.2call和apply29
  • 第3章闭包和高阶函数
  • 3.1闭包35
  • 3.2高阶函数44
  • 3.3小结58
  • 第二部分设计模式
  • 第4章单例模式
  • 4.1实现单例模式60
  • 4.2透明的单例模式61
  • 4.3用代理实现单例模式62
  • 4.4JavaScript中的单例模式63
  • 4.5惰性单例65
  • 4.6通用的惰性单例68
  • 4.7小结70
  • 第5章策略模式
  • 5.1使用策略模式计算奖金72
  • 5.2JavaScript版本的策略模式75
  • 5.3多态在策略模式中的体现76
  • 5.4使用策略模式实现缓动动画76
  • 5.5更广义的“算法”80
  • 5.6表单校验80
  • 5.7策略模式的优缺点86
  • 5.8一等函数对象与策略模式86
  • 5.9小结87
  • 第6章代理模式
  • 6.1第一个例子——小明追MM的故事88
  • 6.2保护代理和虚拟代理91
  • 6.3虚拟代理实现图片预加载91
  • 6.4代理的意义93
  • 6.5代理和本体接口的一致性94
  • 6.6虚拟代理合并HTTP请求95
  • 6.7虚拟代理在惰性加载中的应用97
  • 6.8缓存代理99
  • 6.9用高阶函数动态创建代理100
  • 6.10其他代理模式101
  • 6.11小结102
  • 第7章迭代器模式
  • 7.1jQuery中的迭代器103
  • 7.2实现自己的迭代器104
  • 7.3内部迭代器和外部迭代器104
  • 7.4迭代类数组对象和字面量对象106
  • 7.5倒序迭代器106
  • 7.6中止迭代器107
  • 7.7迭代器模式的应用举例107
  • 7.8小结109
  • 第8章发布—订阅模式
  • 8.1现实中的发布—订阅模式110
  • 8.2发布—订阅模式的作用110
  • 8.3DOM事件111
  • 8.4自定义事件112
  • 8.5发布—订阅模式的通用实现113
  • 8.6取消订阅的事件115
  • 8.7真实的例子——网站登录115
  • 8.8全局的发布—订阅对象117
  • 8.9模块间通信119
  • 8.10必须先订阅再发布吗120
  • 8.11全局事件的命名冲突121
  • 8.12JavaScript实现发布—订阅模式的便利性124
  • 8.13小结124
  • 第9章命令模式
  • 9.1命令模式的用途125
  • 9.2命令模式的例子——菜单程序126
  • 9.3JavaScript中的命令模式128
  • 9.4撤销命令130
  • 9.5撤消和重做132
  • 9.6命令队列134
  • 9.7宏命令134
  • 9.8智能命令与傻瓜命令135
  • 9.9小结136
  • 第10章组合模式
  • 10.1回顾宏命令138
  • 10.2组合模式的用途139
  • 10.3请求在树中传递的过程139
  • 10.4更强大的宏命令140
  • 10.5抽象类在组合模式中的作用143
  • 10.6透明性带来的安全问题144
  • 10.7组合模式的例子——扫描文件夹145
  • 10.8一些值得注意的地方147
  • 10.9引用父对象148
  • 10.10何时使用组合模式150
  • 10.11小结150
  • 第11章模板方法模式
  • 11.1模板方法模式的定义和组成151
  • 11.2第一个例子——CoffeeorTea151
  • 11.3抽象类156
  • 11.4模板方法模式的使用场景159
  • 11.5钩子方法160
  • 11.6好莱坞原则162
  • 11.7真的需要“继承”吗162
  • 11.8小结164
  • 第12章享元模式
  • 12.1初识享元模式165
  • 12.2内部状态与外部状态166
  • 12.3享元模式的通用结构167
  • 12.4文件上传的例子167
  • 12.5享元模式的适用性173
  • 12.6再谈内部状态和外部状态173
  • 12.7对象池175
  • 12.8小结178
  • 第13章职责链模式
  • 13.1现实中的职责链模式179
  • 13.2实际开发中的职责链模式180
  • 13.3用职责链模式重构代码181
  • 13.4灵活可拆分的职责链节点183
  • 13.5异步的职责链184
  • 13.6职责链模式的优缺点185
  • 13.7用AOP实现职责链186
  • 13.8用职责链模式获取文件上传对象187
  • 13.9小结188
  • 第14章中介者模式
  • 14.1现实中的中介者190
  • 14.2中介者模式的例子——泡泡堂游戏191
  • 14.3中介者模式的例子——购买商品199
  • 14.4小结207
  • 第15章装饰者模式
  • 15.1模拟传统面向对象语言的装饰者模式210
  • 15.2装饰者也是包装器211
  • 15.3回到JavaScript的装饰者212
  • 15.4装饰函数212
  • 15.5用AOP装饰函数214
  • 15.6AOP的应用实例216
  • 15.7装饰者模式和代理模式222
  • 15.8小结223
  • 第16章状态模式
  • 16.1初识状态模式224
  • 16.2状态模式的定义230
  • 16.3状态模式的通用结构230
  • 16.4缺少抽象类的变通方式231
  • 16.5另一个状态模式示例——文件上传232
  • 16.6状态模式的优缺点241
  • 16.7状态模式中的性能优化点241
  • 16.8状态模式和策略模式的关系241
  • 16.9JavaScript版本的状态机242
  • 16.10表驱动的有限状态机244
  • 16.11实际项目中的其他状态机245
  • 16.12小结245
  • 第17章适配器模式
  • 17.1现实中的适配器246
  • 17.2适配器模式的应用247
  • 17.3小结250
  • 第三部分设计原则和编程技巧
  • 第18章单一职责原则
  • 18.1设计模式中的SRP原则252
  • 18.2何时应该分离职责256
  • 18.3违反SRP原则256
  • 18.4SRP原则的优缺点257
  • 第19章最少知识原则
  • 19.1减少对象之间的联系258
  • 19.2设计模式中的LKP原则259
  • 19.3封装在LKP原则中的体现261
  • 第20章开放-封闭原则
  • 20.1扩展window.onload函数263
  • 20.2开放和封闭264
  • 20.3用对象的多态性消除条件分支265
  • 20.4找出变化的地方266
  • 20.5设计模式中的开放—封闭原则268
  • 20.6开放—封闭原则的相对性270
  • 20.7接受第一次愚弄270
  • 第21章接口和面向接口编程
  • 21.1回到Java的抽象类271
  • 21.2interface276
  • 21.3JavaScript语言是否需要抽象类和interface275
  • 21.4用鸭子类型进行接口检查277
  • 21.5用TypeScript编写基于interface的命令模式278
  • 第22章代码重构
  • 22.1提炼函数282
  • 22.2合并重复的条件片段283
  • 22.3把条件分支语句提炼成函数284
  • 22.4合理使用循环285
  • 22.5提前让函数退出代替嵌套条件分支285
  • 22.6传递对象参数代替过长的参数列表286
  • 22.7尽量减少参数数量287
  • 22.8少用三目运算符288
  • 22.9合理使用链式调用288
  • 22.10分解大型类289
  • 22.11用return退出多重循环290
  • 参考文献293

资源下载

资源下载地址1:https://pan.baidu.com/s/1uOgT8OoD1opTJf3qoPFjQw

相关资源

网友留言

网友NO.45069
蓟旭妍

理论结合实际,里面很多结合实际应用的实例程序,学习设计模式实际应用很不错的书,不过作者使用的是JavaScript,对于现代脚本语言很多设计模式都是天然融入其中的。如果你想看通俗一点的奖金方式我推荐《head first设计模式》和《设计模式之禅》。如果你是游戏从业者想要学习设计模式在游戏开发中的实际应用,我推荐《游戏编程模式》和《设计模式与游戏完美开发》。

网友NO.47443
厍灵枫

之前看过《javascript模式》一书,那是一本颇受好评的书籍。而本书则是在设计模式上对模式一书的进一步扩充。

本书的一大特点就是结合实际,代码较完整,能直接应用到实际开发中,不过从作者的代码书写风格和严谨方面考虑来说,书中有一些错误。

网友NO.28429
牛彬炳

难得的中文好书,由浅入深,娓娓道来。虽有小瑕疵(都在笔记里列出),但绝对是一本值得反复研读的好书。