Chapter 1 Refactoring, a First Example(新增批注共21条)/1
 The Starting Point/2
 The First Step in Refactoring/9
 Decomposing and Redistributing the Statement Method/10
 Replacing the Conditional Logic on Price Code with Polymorphism/30
 Final Thoughts/41
Chapter 2 Principles in Refactoring(新增批注共10条)/43
 Defining Refactoring/43
 Why Should You Refactor?/45
 When Should You Refactor?/48
 What DO I Tell My Manager?/51
 Problems with Refactoring/53
 Refactoring and Design/57
 Refactoring and Performance/60
 Where Did Refactoring Come From?/61
Chapter 3 Bad Smells in Code (by Kent Beck and Martin Fowler)(新增批注共17条)/65
 Duplicated Code/66
 Long Method/67
 Large Class/70
 Long Parameter List/71
 Divergent Change/73
 Shotgun Surgery/74
 Feature Envy/74
 Data Clumps/75
 Primitive Obsession/76
 Switch Statements/76
 Parallel Inheritance Hierarchies/77
 Lazy Class/77
 Speculative Generality/78
 Temporary Field/78
 Message Chains/79
 Middle Man/81
 Inappropriate Intimacy/82
 Alternative Classes with Different Interfaces/82
 Incomplete Library Class/83
 Data Class/83
 Refused Bequest/84
 Comments/84
Chapter 4 Building Tests(新增批注共2条)/87
 The Value of Self.testing Code/87
 The JUnit Testing Framework/89
 Adding More Tests/97
Chapter 5 Toward a Catalog of Refactorings(新增批注共1条)/103
 Format of the Refactorings/103
 Finding References/105
 How Mature Are These Refactorings?/106
Chapter 6 Composing Methods(新增批注共7条)/109
 Extract Method/11O
 Inline Method/117
 Inline Temp/118
 Replace Temp with Query/119
 Introduce Explaining Variable/124
 Split Temporary Variable/128
 Remove Assignments to Parameters/130
 Replace Method with Method Object/134
 Substitute Algorithm/137
Chapter 7 Moving Features Between Objects(新增批注共11条)/139
 Move Method/139
 Move Field/144
 Extract Class/147
 Inline Class/151
 Hide Delegate/153
 Remove Middle Man/156
 Introduce Foreign Method/158
 Introduce Local Extension/160
Chapter 8 Organizing Data(新增批注共9条)/167
 Self Encapsulate Field/168
 Replace Data Value with Object/172
 Change Value to Reference/175
 Change Reference to Value/179
 Replace Array with Object/181
 Duplicate Observed Data/186
 Change Unidirectional Association to Bidirectional/194
 Change Bidirectional Association to Unidirectional/197
 Replace Magic Number with Symbolic Constant/200
 Encapsulate Field/201
 Encapsulate Collection/202
 Replace Record with Data Class/211
 Replace Type Code with Class/211
 Replace Type Code with Subclasses/217
 Replace Type Code with State/Strategy/220
 Replace Subclass with Fields/225
Chapter 9 Simplifying Conditional Expressions(新增批注共6条)/229
 Decompose Conditional/229
 Consolidate Conditional Expression/231
 Consolidate Duplicate Conditional Fragments/243
 Remove Contr01 Flag/236
 Replace Nested Conditional with Guard Clauses/240
 Replace Conditional with Polymorphism/245
 Introduce Null Object/249
 Introduce Assertion/258
Chapter 10 Making Method Calls Simpler(新增批注共13条)/263
 Rename Method/264
 Add Parameter/266
 Remove Parameter/267
 Separate Query from Modifier/269
 Parameterize Method/273
 Replace Parameter with Explicit Methods/277
 Preserve Whole Object/280
 Replace Parameter with Method/283
 Introduce Parameter Object/286
 Remove Setting Method/293
 Hide Method/296
 Replace Constructor with Factory Method/297
 Encapsulate Downcast/301
 Replace Error Code with Exception/303
 Replace Exception With Test/308
Chapter 11 Dealing with Generalization(新增批注共6条)/313
 Pull Up Field/313
 Pull Up Method/315
 Pull Up Constructor Body/317
 Push Down Method/320
 Push Down Field/321
 Extract Subclass/322
 Extract Superclass/327
 Extract Interface/331
 Collapse Hierarchy/334
 Form Template Method/335
 Replace Inheritance with Delegation/342
 Replace Delegation with Inheritance/345
Chapter 12 Big Refactorings (By Kent Beck and Martin Fowler)(新增批注共11条)/349
 Tease Apart Inheritance/351
 Convert Procedural Design to Objects/358
 Separate Domain from Presentation/363
 Extract Hierarchy/357
Chapter 13 Refactoring, Reuse, and Reality (by William Opdyke)(新增批注共8条)/373
 A Reality Check/374
 Why Are Developers Reluctant to Refactor Their Programs?/375
 A Reality Check (Revisited)/388
 Resources and References for Refactoring/389
 Implications Regarding Software Reuse and Technology Transfer/390
 A Final Note/391
 References/391
Chapter 14 Refactoring Tools (by Don Roberts and John Brant)/395
 Refactoring with a Tool/395
 Technical Criteria for a Refactoring Tool/397
 Practical Criteria for a Refactoring Tool/399
 Wrap Up/401
Chapter 15 Putting It All Together (by Kent Beck)(新增批注共2条)/403
References/407
List of Soundbites/411
Index/413