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