目 录 1
前言 1
第1章路线图 1
1.1概述 1
1.2第1部分:类之中的坏味道 2
1.3第2部分:类之间的坏味道 2
1.4第3部分:待重构的程序 2
1.5关于练习 3
第1部分类之中的坏味道 7
第2章重构周期 7
2.1什么是重构? 7
2.2坏味道即为问题 8
2.4什么时候才算结束? 9
2.3重构周期 9
2.5在重构之中 12
2.6实战练习 15
2.7小结 15
第3章可度量的坏味道 17
3.1所涉及的坏味道 17
3.2注释 18
3.3过长的方法 20
3.4过大的类 25
3.5过长的参数表 30
3.6更多实战练习 32
3.7 小结 33
中场休息1 坏味道和重构 35
第4章命名 39
4.2名字(包括匈牙利记法)中嵌有类型 40
4.1所涉及的坏味道 40
4.3表达能力差的名字 41
4.4不一致的名字 42
第5章不必要的复杂性 45
5.1所涉及的坏味道 45
5.2死代码 45
5.3过分一般性 46
中场休息2逆处理 49
第6章重复 51
6.1所涉及的坏味道 52
6.2魔法数 52
6.3重复性代码 53
6.4接口不同的相似类 54
6.5实战练习 55
7.2 Null检查 63
第7章条件逻辑 63
7.1所涉及的坏味道 63
7.3复杂的布尔表达式 65
7.4特殊用例 67
7.5模拟继承(Switch语句) 68
中场休息3设计模式 71
第2部分类之间的坏味道 75
第8章数据 75
8.1所涉及的坏味道 75
8.2基本类型困扰 75
8.3数据类 79
8.4数据泥团 83
8.5临时字段 85
9.1所涉及的坏味道 87
9.2拒收的遗赠 87
第9章继承 87
9.3不当的紧密性(子类形式) 90
9.4慵懒类 90
第10章职责 93
10.1所涉及的坏味道 93
10.2依恋情结 93
10.3不当的紧密性(一般形式) 95
10.4消息链 96
10.5中间人 97
10.6实战练习 98
第11章相关改变 103
11.1所涉及的坏味道 103
11.2发散式改变 103
11.3霰弹式修改 107
11.4并行继承体系 108
11.5组合爆炸 109
第12章库类 111
12.1所涉及的坏味道 111
12.2不完备的库类 111
12.3实战练习 112
中场休息4重构构成形式 117
第3部分待重构的程序 121
第1 3章一个数据库例子 121
13.1 Course.java(可由www.xp123.com/rwb在线获得) 122
13.2 Offering.java 124
13.3 Schedule.java 126
13.4 Report.java 129
13.5TestSchedule.java 131
13.6 TestReport.java 134
第14章一个简单的游戏 141
14.1 开发环节 147
第1 5章编目 151
15.1 引言 151
15.2第1种做法:Catalog.itemsMatching(query) 152
15.3第2种做法:Query.matchesIn(catalog) 155
15.4第3种做法:Process(catalog.data,query.data) 156
15.5小结 157
第1 6章计划游戏模拟器 159
16.1第1部分:原始代码 160
16.2代码(可在www.xp123.com/rwb在线得到) 160
16.3Table.java 160
16.4 Background.java 164
16.5 Card.java 165
16.6实战练习 168
16.7第2部分:重新分配特性 170
16.8去除重复、选择问题以及一些模糊性 173
16.9第3部分:进一步推动代码 176
第17章下一步何去何从 181
17.1参考书 181
17.2警告 181
17.3必经历练 182
17.4 Web网站资源 183
第4部分附录 187
附录A所选问题的答案 187
附录B Java重构工具 217
附录C重构逆处理 219
附录D主要重构技术 221
参考文献 225
索引 227