上篇:编程范式与编程语言 1
第1课 开班导言 3
1.1开班发言——程序员的4层境界 4
1.2首轮提问——什么语言好? 7
1.3语言选择——合适的就是好的 10
1.4初识范式——程序王国中的世界观与方法论 15
1.5开发技术——实用还是时髦? 18
第2课 重要范式 25
2.1命令范式——一切行动听指挥 26
2.2声明范式——目标决定行动 31
2.3对象范式——民主制社会的编程法则 37
2.4并发范式——合作与竞争 43
第3课 常用范式 49
3.1泛型范式——抽象你的算法 50
3.2超级范式——提升语言的级别 55
3.3切面范式——多角度看问题 63
3.4事件驱动——有事我叫你,没事别烦我 69
第4课 重温范式 85
4.1函数范式——精巧的数学思维 86
4.2逻辑范式——当算法失去了控制 95
4.3汇总范式——一张五味俱全的大烙饼 103
4.4情景范式——餐馆里的编程范式 109
第5课 语言小谈 119
5.1教学计划——接下来的故事 120
5.2数据类型——规则与变通 125
5.3动态语言——披着彩衣飞舞的脚本语言 131
5.4语言误区——语言的宗教情结 137
第6课 语言简评 145
6.1系统语言——权力的双刃剑 146
6.2平台语言——先搭台后唱戏 154
6.3前台语言——视觉与交互的艺术 161
6.4后台脚本——敏捷开发的利器 167
下篇:抽象机制与对象范式 175
第7课 抽象封装 177
7.1抽象思维——减法和除法的学问 178
7.2数据抽象——“做什么”重于“怎么做” 189
7.3封装隐藏——包装的讲究 200
第8课 抽象接口 211
8.1软件应变——随需而变,适者生存 212
8.2访问控制——代码的多级管理 220
8.3接口服务——讲诚信与守规矩 228
第9课 继承机制 237
9.1继承关系——继承财富,更要继承责任 238
9.2慎用继承——以谨慎之心对待权力 254
第10课 多态机制 277
10.1多态类型——静中之动 278
10.2抽象类型——实中之虚 291
第11课 值与引用 311
11.1语法类型——体用之分 312
11.2语义类型——阴阳之道 322
第12课 设计原则 341
12.1间接原则——柔胜于刚,曲胜于直 342
12.2依赖原则——有求皆苦,无欲则刚 352
12.3内聚原则——不是一家人,不进一家门 363
12.4保变原则——与魔鬼打交道的艺术 374
第13课 设计模式 385
13.1创建模式——不要问我从哪里来 386
13.2结构模式——建筑的技巧 403
13.3行为模式——君子之交淡如水 418
13.4闭班小结——软件无形,编程有道 440
索引 447
设计手记 451
编辑手记 453