《JavaScript设计模式》共分六篇四十章,首先讨论了几种函数的编写方式,体会JavaScript在编程中的灵活性;然后讲解了面向对象编程的知识,其中讨论了类的创建、数据的封装以及类之间的继承;最后探讨了各种模式的技术,如简单工厂模式,包括工厂方法模式、抽象工厂模式、建造者模式、原型模式、单例模式,以及外观模式,包括适配器模式。本书还讲解了几种适配器、代理模式、装饰者模式和MVC模式,讨论了如何实现对数据、视图、控制器的分离。在讲解MVP模式时,讨论了如何解决数据与视图之间的耦合,并实现了一个模板生成器;讲解MVVM模式时,讨论了双向绑定对MVC的模式演化。本书几乎包含了关于JavaScript设计模式的全部知识,是进行JavaScript高效编程必备的学习手册。
目录
- 第一篇 面向对象编程
- 第1章 灵活的语言——JavaScript 2
- 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 引入jQuery 73
- 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 JSONP 81
- 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 自娱自乐的IE 152
- 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