整理了一下,有助于对代码进行refatoring。
Smells Within Classes
|
smells |
refactoring |
|
Comments |
|
|
Long Method |
Extract Method.
|
|
Large Class |
Extract Class Extract Subclass
|
|
Long Parameter List |
Replace Parameter with Method Preserve Whole Object Introduce Parameter Object.
|
|
|
|
Smells Between Classes
Smells category |
smells |
refactoring |
Data |
|
|
|
Primitive Obsession |
Replace Data Value with Object Replace Type Code with Class Replace Type Code with Subclasses Replace Type Code with State/Strategy.
|
|
Data Class |
|
|
Data Clump |
Extract Class Introduce Parameter Object Preserve Whole Object
|
|
Temporary Field |
Extract Class Introduce Null Object
|
Inheritance |
|
|
|
Refused Bequest |
Push Down Method Push Down Field Replace Inheritance with Delegation |
|
Inappropriate Intimacy (Subclass Form) |
Self Encapsulate Field Form Template Method Replace Inheritance with Delegation |
|
Lazy Class |
Collapse Hierarchy Inline Class |
Responsibility |
|
|
|
Feature Envy |
Move Method |
|
Inappropriate Intimacy (General Form) |
Move Method and Move Field Extract Class and Hide Delegate Change Bidirectional Association to Unidirectional
|
|
Message Chains |
Extract Method Move Method Hide Delegate |
|
Middle Man |
Remove Middle Man Replace Delegation with Inheritance |
Accommodating Change |
|
|
|
Divergent Change |
|
|
Shotgun Surgery |
|
|
Parallel Inheritance Hierarchies |
|
|
Combinatorial Explosion |
|
Library Classes |
|
|
|
Incomplete Library Class |
|
|
|
|