第Ⅰ部分 成功的项目第1章 系统设计 3
1.1 分析阶段 4
1.1.1 用例介绍 5
1.1.2 书写正式用例 5
1.1.3 编写用例 7
1.1.4 UML的使用 7
1.2 设计阶段 8
1.2.1 CRC卡介绍 9
1.2.2 类确定 9
1.2.3 类功能确定 10
1.2.4 确定协作类 11
1.2.5 确定类与类之间的联系 11
1.2.6 确定公共接口函数(API) 13
1.2.7 设计阶段UML的应用 13
1.3 实现阶段 14
1.3.1 编程规范 15
1.3.2 封装 17
1.3.3 继承和组合 22
1.3.4 耦合 26
1.4 测试阶段 26
1.4.1 创建基本单元测试 28
1.4.2 异步单元测试创建 32
1.5 本章小结 35
第2章 接口编程 37
2.1 接口定义 37
2.1.1 通过接口构造函数定义接口 39
2.1.2 通过继承定义接口 41
2.1.3 确定定义接口的方式 41
2.2 多态性的使用 42
2.2.1 区分类型和类 43
2.2.2 制定运行时决策 44
2.3 本章小结 47
第Ⅱ部分 模式 51
第3章 模型/视图/控制器模式 51
3.1 MVC元素 52
3.1.1 模型 52
3.1.2 视图 53
3.1.3 控制器 53
3.1.4 元素之间的联系 53
3.2 构建一个简单示例 54
3.2.1 Clock数据模型 54
3.2.2 Clock的模拟视图 57
3.2.3 模拟Clcok测试 59
3.2.4 时钟数字显示视图 62
3.2.5 数字时钟测试 63
3.3 多视图显示 65
3.4 模型实现代码的修改 66
3.5 添加控制器 70
3.6 本章小结 74
第4章 单件模式 75
4.1 对象实例化 75
4.1.1 限制实例化 76
4.1.2 单一实例和全局访问 77
4.2 单件模式和静态成员 79
4.3 构建简单的单件类 80
4.3.1 创建单件类 80
4.3.2 调用单件类 81
4.4 设置框架的构建 82
4.4.1 创建XML文档 82
4.4.2 创建settings类 82
4.4.3 调用Settings类 86
4.5 本章小结 87
第5章 工厂方法和模板方法模式 89
5.1 抽象类 89
5.2 模板方法 90
5.3 工厂方法 92
5.4 本章小结 96
第6章 代理模式 97
6.1 虚拟代理 97
6.1.1 图像加载器示例 98
6.1.2 惰性序列化示例 100
6.2 远程代理 104
6.2.1 Flicker搜索代理示例 104
6.2.2 flash.utils.Proxy 106
6.3 适配器模式和Fa?ade模式 111
6.4 本章小结 111
第7章 迭代器模式 113
7.1 迭代器的问题描述 113
7.2 迭代器元素 116
7.2.1 迭代器接口 116
7.2.2 具体迭代器角色 117
7.2.3 集合接口 119
7.2.4 具体的集合 119
7.3 迭代器的用法 120
7.4 Null迭代器用法 121
7.5 本章小结 122
第8章 组合模式 123
8.1 元素接口 123
8.2 叶子元素 126
8.3 组合元素 127
8.4 构建文件系统 128
8.5 本章小结 135
第9章 装饰器模式 137
9.1 装饰器模式 138
9.1.1 装饰器/装饰接口 138
9.1.2 具体装饰类 139
9.1.3 抽象装饰器类 139
9.1.4 具体装饰器类 140
9.2 构建Reader装饰器 141
9.2.1 创建装饰器/装饰接口 142
9.2.2 定义Abstract Reader类 143
9.2.3 定义具体装饰类 144
9.2.4 创建Abstract Decorator类 145
9.2.5 第一个具体装饰器类的定义 146
9.2.6 测试装饰器 148
9.2.7 另一个具体装饰器类的定义 149
9.2.8 新装饰类型的定义 151
9.2.9 装饰装饰器 154
9.3 可视化装饰器和可交换装饰器 156
9.3.1 定义公共接口 156
9.3.2 定义具体装饰器类 157
9.3.3 定义装饰器类 158
9.3.4 添加不可交换的装饰器 161
9.4 本章小结 166
第10章 命令模式 167
10.1 命令模式简介 167
10.1.1 接口 168
10.1.2 具体的命令和接收者 169
10.1.3 客户和调用者 169
10.2 构建一个简单的命令应用 170
10.2.1 创建命令 170
10.2.2 创建接收者类型 173
10.2.3 创建按钮 173
10.2.4 创建命令容器 174
10.2.5 测试应用 177
10.3 撤销命令执行和保持命令历史记录 178
10.4 构建可撤销操作的应用 182
10.4.1 编辑可撤销操作的命令 182
10.4.2 记录命令历史 185
10.4.3 添加Undo按钮 186
10.5 构建可重新恢复的应用 188
10.5.1 实现IRedoableCommand接口 188
10.5.2 添加Redo按钮 189
10.6 使用命令构建一个Proximity游戏 190
10.6.1 定义玩家数据类 190
10.6.2 为游戏玩家定义集合类 191
10.6.3 定义游戏网格 192
10.6.4 定义游戏棋盘数据类 195
10.6.5 定义游戏命令类 199
10.6.6 定义游戏工厂类 200
10.6.7 定义游戏网格视图和控制器类 201
10.6.8 定义游戏棋盘视图和控制器 204
10.6.9 定义main类 206
10.7 本章小结 208
第11章 备忘录模式 209
11.1 使用备忘录模式在Proximity游戏中撤销执行过的动作 215
11.1.1 定义备忘录类型 215
11.1.2 创建原发器 216
11.1.3 定义撤销命令类型 217
11.1.4 更新命令工厂 219
11.1.5 更新main类 219
11.2 在Proximity游戏中添加备忘录恢复命令动作 220
11.2.1 定义恢复命令 220
11.2.2 编辑工厂类 222
11.2.3 编辑main类 223
11.3 本章小结 224
第12章 状态模式 225
12.1 简单状态示例 225
12.1.1 创建SimpleShooter类 226
12.1.2 创建main示例类 227
12.1.3 示例存在的问题 228
12.2 状态封装 229
12.2.1 Shooter状态接口 229
12.2.2 状态对象 230
12.2.3 ShooterStateMachine类 231
12.2.4 创建main类 233
12.3 抽象类用法 234
12.3.1 抽象Shooter状态 235
12.3.2 状态对象 236
12.3.3 Shooter状态自动机 238
12.3.4 创建main示例类 239
12.4 变迁 240
12.4.1 在状态机中定义变迁 240
12.4.2 在状态对象中定义变迁 242
12.5 本章小结 247
第Ⅲ部分 高级ActionScript主题第13章 事件 251
13.1 事件介绍 251
13.2 事件的用法 253
13.2.1 事件的元素组成 253
13.2.2 注册监听器 253
13.2.3 移除事件监听器 256
13.2.4 事件阶段 256
13.2.5 目标阶段 258
13.2.6 冒泡阶段 258
13.3 创建事件派发器 261
13.3.1 事件对象 261
13.3.2 事件对象属性 262
13.3.3 默认事件行为 262
13.3.4 停止事件传播 262
13.3.5 通过继承派发事件 263
13.3.6 IEventDispatcher接口 263
13.4 事件示例 265
13.4.1 创建IconButton类 265
13.4.2 创建main类 267
13.5 本章小结 268
第14章 发送和加载数据 269
14.1 加载文本 269
14.1.1 创建LimerickData类 272
14.1.2 创建LimerickView类 273
14.1.3 创建main类 274
14.2 发送和加载变量 275
14.2.1 发送变量 276
14.2.2 加载变量 278
14.3 发送和加载XML 281
14.3.1 发送XML 281
14.3.2 加载XML 281
14.4 Web服务的用法 282
14.5 远程Flash的用法 282
14.5.1 远程Flash的基本原理 283
14.5.2 Flash远程调用 283
14.6 Data通信优化 286
14.6.1 数据缓存 286
14.6.2 请求队列与队列池 290
14.7 本章小结 290
第15章 E4X(XML) 291
15.1 创建XML对象 292
15.2 属性访问器 294
15.3 XML过滤 295
15.4 XMLList中的迭代 296
15.5 命名空间 297
15.6 发送和加载XML数据 298
15.7 简单Soap示例 299
15.7.1 构建定制事件 300
15.7.2 创建Web服务类 302
15.7.3 创建main类 304
15.8 本章小结 306
第16章 正则表达式 307
16.1 RegExp类介绍 308
16.2 正则表达式的用法 309
16.2.1 正则表达式的布尔测试 309
16.2.2 查找匹配子字符串的位置 309
16.2.3 找到匹配子字符串 310
16.2.4 使用正则表达式替代子字符串 311
16.3 正则表达式标志的用法 312
16.3.1 全局标志 313
16.3.2 大小写忽略标志 313
16.3.3 多行标志 314
16.3.4 点匹配换行符标志 314
16.3.5 扩展标志 315
16.4 转义字符和转义序列的深入介绍 316
16.4.1 字符类的用法 317
16.4.2 量词的用法 318
16.5 正则表达式群的用法 318
16.6 使用正则表达式构建填字游戏 322
16.6.1 创建数据模型类 323
16.6.2 创建输入控制 329
16.6.3 创建视图类 330
16.6.4 创建main类 332
16.7 本章小结 334