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 |
|
|
|
|