《JavaScript设计模式》共分六篇四十章,首先讨论了几种函数的编写方式,体会JavaScript在编程中的灵活性;然后讲解了面向对象编程的知识,其中讨论了类的创建、数据的封装以及类之间的继承;最后探讨了各种模式的技术,如简单工厂模式,包括工厂方法模式、抽象工厂模式、建造者模式、原型模式、单例模式,以及外观模式,包括适配器模式。本书还讲解了几种适配器、代理模式、装饰者模式和MVC模式,讨论了如何实现对数据、视图、控制器的分离。在讲解MVP模式时,讨论了如何解决数据与视图之间的耦合,并实现了一个模板生成器;讲解MVVM模式时,讨论了双向绑定对MVC的模式演化。本书几乎包含了关于JavaScript设计模式的全部知识,是进行JavaScript高效编程必备的学习手册。
《JavaScript设计模式》适合JavaScript初学者、前端设计者、JavaScript程序员学习,也可以作为大专院校相关专业师生的学习用书,以及培训学校的教材。
专业讲解全面Web前端设计模式书阿里巴巴、百度前端高级工程师鼎力推荐Web前端界以一种讲故事方式讲解每一种模式,让每位读者都能读懂。书中案例都是实际工作中的真实案例,让读者身临其境。全面涵盖专门针对javascript的36个设计模式,帮助读者尽快提高开发效率深入剖析面向对象的设计原则及代码重构,帮助读者快速融入团队项目开发中本书通过职场主人公“小铭”实战历练,介绍了他从菜鸟到高级程序员的蜕变过程,值得每一个程序员借鉴和学习!各种设计模式的原则和准确定义、应用方法实践
张容铭百度资深高级web前端研发工程师,长期工作在web前端一线上,现研发与维护百度图片搜索业务,曾主导百度新首页项目改版等。 喜欢钢琴,素描,而又常带着他的单反各地旅行。
目录
第一篇 面向对象编程
第1章 灵活的语言——JavaScript2
1.1 入职第一天2
1.2 函数的另一种形式2
1.3 用对象收编变量3
1.4 对象的另一种形式4
1.5 真假对象4
1.6 类也可以5
1.7 一个检测类5
1.8 方法还可以这样用6
1.9 函数的祖先7
1.10 可以链式添加吗8
1.11 换一种方式使用方法9
下章剧透10
忆之获10
我问你答10
第2章 写的都是看到的——面向
对象编程11
2.1 两种编程风格——面向过程与
面向对象11
2.2 包装明星——封装12
2.3 传宗接代——继承19
2.4 老师不止一位——多继承27
2.5 多种调用方式——多态29
下章剧透30
忆之获31
我问你答31
第二篇 创建型设计模式
第3章 神奇的魔术师——简单工厂模式34
3.1 工作中的第一次需求34
3.2 如果类太多,那么提供一个35
3.3 一个对象有时也可代替许多类37
3.4 你的理解决定你选择的方式38
下章剧透39
忆之获39
我问你答39
第4章 给我一张名片——工厂方法模式40
4.1 广告展现40
4.2 方案的抉择41
4.3 安全模式类42
4.4 安全的工厂方法43
下章剧透44
忆之获44
我问你答44
第5章 出现的都是幻觉——抽象
工厂模式45
5.1 带头模范——抽象类45
5.2 幽灵工厂——抽象工厂模式46
5.3 抽象与实现47
下章剧透49
忆之获49
我问你答49
第6章 分即是合——建造者模式50
6.1 发布简历50
6.2 创建对象的另一种形式50
6.3 创建一位应聘者52
下章剧透53
忆之获53
我问你答54
第7章 语言之魂——原型模式55
7.1 语言中的原型55
7.2 创建一个焦点图55
7.3 最优的解决方案56
7.4 原型的拓展58
7.5 原型继承58
下章剧透59
忆之获60
我问你答60
第8章 一个人的寂寞——单例模式61
8.1 滑动特效61
8.2 命名空间的管理员62
8.3 模块分明63
8.4 创建一个小型代码库63
8.5 无法修改的静态变量64
8.6 惰性单例65
下章剧透65
忆之获66
我问你答66
第三篇 结构型设计模式
第9章 套餐服务——外观模式68
9.1 添加一个点击事件68
9.2 兼容方式69
9.3 除此之外70
9.4 小型代码库70
下章剧透71
忆之获71
我问你答72
第10章 水管弯弯——适配器模式73
10.1 引入jQuery73
10.2 生活中的适配器73
10.3 jQuery适配器74
10.4 适配异类框架74
10.5 参数适配器75
10.6 数据适配76
10.7 服务器端数据适配77
下章剧透77
忆之获77
我问你答78
第11章 牛郎织女——代理模式79
11.1 无法获取图片上传模块数据79
11.2 一切只因跨域79
11.3 站长统计80
11.4 JSONP81
11.5 代理模板81
下章剧透83
忆之获83
我问你答84
第12章 房子装修——装饰者模式85
12.1 为输入框的新需求85
12.2 装饰已有的功能对象86
12.3 为输入框添砖加瓦86
下章剧透87
忆之获87
我问你答88
第13章 城市间的公路——桥接模式89
13.1 添加事件交互89
13.2 提取共同点90
13.3 事件与业务逻辑之间的桥梁90
13.4 多元化对象91
下章剧透93
忆之获93
我问你答93
第14章 超值午餐——组合模式94
14.1 新闻模块十万火急94
14.2 餐厅里的套餐业务95
14.3 每个成员要有祖先95
14.4 组合要有容器类96
14.5 创建一个新闻类97
14.6 把新闻模块创建出来99
14.7 表单中的应用100
下章剧透101
忆之获101
我问你答102
第15章 城市公交车——享元模式103
15.1 翻页需求103
15.2 冗余的结构104
15.3 享元对象104
15.4 实现需求105
15.5 享元动作106
下章剧透108
忆之获108
我问你答108
第四篇 行为型设计模式
第16章 照猫画虎——模板方法模式110
16.1 提示框归一化110
16.2 美味的蛋糕111
16.3 创建基本提示框111
16.4 模板的原型方法112
16.5 根据模板创建类113
16.6 继承类也可作为模板类113
16.7 创建一个提示框114
16.8 创建多类导航114
16.9 创建导航更容易116
下章剧透116
忆之获116
我问你答117
第17章 通信卫星——观察者模式118
17.1 团队开发的坎坷118
17.2 卫星的故事118
17.3 创建一个观察者119
17.4 拉出来溜溜121
17.5 使用前的思考121
17.6 大显身手121
17.7 对象间解耦123
17.8 课堂演练124
下章剧透125
忆之获125
我问你答125
第18章 超级玛丽——状态模式126
18.1 最美图片126
18.2 分支判断的思考126
18.3 状态对象的实现127
18.4 状态对象演练127
18.5 超级玛丽128
18.6 状态的优化129
18.7 两种使用方式130
下章剧透131
忆之获131
我问你答131
第19章 活诸葛——策略模式132
19.1 商品促销132
19.2 活诸葛132
19.3 策略对象133
19.4 诸葛奇谋133
19.5 缓冲函数134
19.6 表单验证134
19.7 算法拓展135
19.8 算法调用135
下章剧透136
忆之获136
我问你答137
第20章 有序车站——职责链模式138
20.1“半成品”需求138
20.2 分解需求139
20.3 第一站——请求模块139
20.4 下一站——响应数据适配模块140
20.5 终点站——创建组件模块141
20.6 站点检测——单元测试141
20.7 方案确定142
下章剧透142
忆之获143
我问你答143
第21章 命令模式144
21.1 自由化创建视图144
21.2 命令对象145
21.3 视图创建145
21.4 视图展示146
21.5 命令接口147
21.6 大功告成147
21.7 绘图命令148
21.8 写一条命令150
下章剧透150
忆之获151
我问你答151
第22章 驻华大使——访问者模式152
22.1 设置样式152
22.2 自娱自乐的IE152
22.3 访问操作元素153
22.4 事件自定义数据153
22.5 原生对象构造器154
22.6 对象访问器154
22.7 操作类数组155
下章剧透156
忆之获156
我问你答156
第23章 媒婆——中介者模式157
23.1 导航设置层157
23.2 创建中介者对象158
23.3 试试看,可否一用159
23.4 攻克需求159
23.5 订阅消息160
23.6 发布消息161
下章剧透162
忆之获162
我问你答162
第24章 做好笔录——备忘录模式163
24.1 新闻展示163
24.2 缓存数据164
24.3 新闻缓存器164
24.4 工作中的备忘录166
下章剧透166
忆之获166
我问你答166
第25章 点钞机——迭代器模式167
25.1 简化循环遍历167
25.2 迭代器167
25.3 实现迭代器168
25.4 小试牛刀170
25.5 数组迭代器171
25.6 对象迭代器171
25.7 试用迭代器172
25.8 同步变量迭代器172
25.9 分支循环嵌套问题174
25.10 解决方案176
下章剧透177
忆之获177
我问你答177
第26章 语言翻译——解释器模式178
26.1 统计元素路径178
26.2 描述文法179
26.3 解释器179