前言 1
第Ⅰ部分 无常的变化 13
第1章 面向对象程序设计、设计模式和ActionScript 3.0 13
成功之后的喜悦 13
OOP基础 20
抽象 20
封装 24
继承 33
多态性 42
使用设计模式进行软件开发的原则 50
使用接口而不是具体的实现 53
养成使用组合的习惯 56
计划项目时要同时考虑维护和扩展性 64
应用程序的计划:并不是必须遵守的原则 66
第Ⅱ部分 创建模式 73
第2章 工厂方法模式 73
什么是工厂方法模式? 73
ActionScript 3.0中的抽象类 76
工厂方法最小化示例 77
隐藏产品类 81
实例:打印商店管理程序 82
实例扩展:彩色打印 87
工厂方法模式中关键的OOP概念 90
实例:Sprite工厂 91
实例:垂直射击游戏 96
小结 107
第3章 单态模式 108
什么是单态模式 108
单态模式中关键的OOP概念 109
抽象单态模式最小化示例 112
什么时候使用单态模式 119
小结 130
第Ⅲ部分 结构模式 135
第4章 装饰者模式 135
什么是装饰者模式? 135
装饰者模式中使用的重要的OOP概念 138
抽象装饰者最小化示例 140
简单的装饰者模式在Flash中的应用:纸娃娃游戏 145
用各种表示正义和邪恶的属性对人物进行装饰 151
动态地选择具体的组件和装饰者:汽车销售网站 168
小结 179
第5章 适配器模式 181
什么是适配器模式? 181
对象适配器和类适配器 183
适配器模式中关键的OOP概念 188
实例:汽车驾驶适配器 189
实例扩展:使用鼠标驾驶汽车 196
实例:显示列表适配器 197
实例扩展:显示O'Reilly出版的新书目 202
小结 205
第6章 组合模式 207
什么是组合模式? 207
组合模式最小化示例 210
组合模式中关键的OOP概念 219
实例:歌曲播放列表 220
实例:利用反向运动学制作组合对象的动画效果 224
使用Flash内置的组合结构:显示列表 234
小结 244
第Ⅳ部分 行为模式 247
第7章 命令模式 247
什么是命令模式? 247
命令模式的最小化示例 251
命令模式中主要的OOP概念 254
简单的实例:宏命令 255
实例:控制数字的值 258
实例扩展:共享命令对象 263
实例扩展:实现恢复操作 265
实例:播客收音机 269
扩展实例:命令对象的动态赋值 275
小结 279
第8章 观察者模式 281
什么是观察者? 281
观察者模式中关键的OOP概念 284
观察者模式最小化示例 288
实例:添加状态并标识用户 293
动态地改变状态 300
实例:采用不同的形式显示数据 314
小结 327
第9章 模板方法模式 328
什么是模板方法模式? 328
模板方法用到的主要OOP概念 332
最小示例:抽象模板方法 334
模板方法的灵活性 336
选择和播放声音和视频 340
钩起 347
小结 351
第10章 状态模式 353
用来创建一个状态机器的设计模式 353
状态设计模式用到的主要OOP概念 356
最小抽象状态设计模式 357
视频播放器具体状态应用程序 363
扩展状态设计:添加状态 370
添加更多的状态和流媒体播放能力 377
小结 391
第11章 策略模式 392
什么是策略模式? 392
策略模式使用的主要OOP概念 394
最小抽象策略模式 396
添加更多的具体策略和具体上下文环境 399
使用字符串策略 408
小结 416
第Ⅴ部分 复合模式 419
第12章 模型-视图-控制器模式 419
什么是模型-视图-控制器(MVC)模式? 419
MVC元素间的通信 420
MVC里的嵌入模式 422
一个MVC模式的最小示例 423
MVC模式里的主要OOP概念 434
例子:天气地图 434
扩展示例:红外天气地图 442
示例:小汽车 448
自定义视图 454
添加一个追赶的小汽车 456
小结 458
第13章 对称代理模式 459
同步游戏和结果 459
对称代理模式 462
对称代理模式使用的主要OOP概念 465
游戏玩家接口 467
游戏裁判员 468
在互联网上共享的信息 473
游戏玩家-代理类 475
支撑类和文档文件 483
小结 487