Refactor: Extract and Isolate
Break down complex code into focused, reusable units.
Extract Method
When to Extract
- •Function > 20 lines
- •Code block has a distinct purpose
- •Same logic repeated
- •Deep nesting (> 3 levels)
Extract Class
When to Extract
- •Class > 300 lines
- •Multiple distinct responsibilities
- •Group of related methods/properties
- •Feature envy
Extract Protocol/Interface
When to Extract
- •Multiple implementations possible
- •Testing requires mocking
- •Dependency inversion needed
Checklist
- •Identify extraction boundary
- •Choose good name for new unit
- •Move code to new location
- •Update references
- •Add tests for new unit
- •Verify original tests pass