重构改变既有代码设计
重构原则
重构的目的
重构的时机
不可重构的情况
重构的难题
代码坏味道
Duplicated Code
Long Method
Large Class
Long Parameter List
Divergent Change
Shotgun Surgry
Feature Envy
Data Clumps
Primitive Obsession
Switch Statements
Parallel Inheritance Hierarchies
Lazy Class
Speculative Generality
Temporary Field
Message Chains
Middle Man
Inappropriate Intimacy
Alternative Classes with Different Interfaces
Incomplete Library Class
Data Class
Refused Bequrest
Comments
构筑测试体系
简化条件表达式
Decompose Conditional
Consolidate Conditional Expression
Consolidate Duplicate Conditional Fragments
Remove Control Flag
Replace Nested Conditional With Guard Clauses
Replacement Conditional With Polymorphism
Introduce Null Object
Introduce Assertion
重新组织函数
Extract Method
Inline Method
Inline Temp
Replace Temp with Query
Introduce Explaining Variable
Split Temporary Variable
Remove Assignments to Paramters
Replace Method with Method Object
Substitute Algorithm
重新组织数据
Self Encapsulate Field
Replace Data Value with Object
Change Value to Reference
Change Reference to Value
Replace Array with Object
Duplicate Observed Data
在对象之间搬移特性
Move Method & Move Field
Extract Class
Inline Class
Hide Delegate
Remove Middle Man
Introduce Foregin Method
Introduce Local Extension
简化函数调用
Rename Method
Add Paramter & Remove Paramter
处理概括关系
大型重构
最后更新于