The process of changing a software system in such away that it does not alter external behavior, but improves the internal structure.
Techniques
- Refactoring Extract Method
- Refactoring Replace Method with Method Object
- Refactoring Consolidate Conditional Expression
- Refactoring Consolidate Duplicate Conditional Fragments
- Refactoring Remove Control Flag
- Refactoring Replace Nested Conditionals with Guard Clauses
- Refactoring Replace Magic Number with Symbolic Constant
- Refactoring Parameterize Method
- Refactoring Replace Parameter with Explicit Method
- Refactoring Introduce Explaining Variable
- Refactoring Extract Class
- Refactoring Extract Superclass
- Refactoring Extract Subclass
- Refactoring Pull up Field or Method
- Refactoring Push down Field or Method
- Refactoring Replace Inheritance with Delegation
- Refactoring Replace Delegation with Inheritance
- Refactoring Replace Conditional with Polymorphism
- Refactoring Introduce Null Object