refactor-moving-features
Installation
SKILL.md
Refactor: Moving Features Between Objects
Overview
These 8 techniques redistribute responsibilities between classes. They address "which class should own this behavior?" — reducing coupling, increasing cohesion, and focusing each class on a single responsibility.
When to Use
- A method uses more data from another class than its own (Feature Envy)
- A class has grown too large with unrelated responsibilities (Large Class, Divergent Change)
- A class is too thin to justify its existence (Lazy Class)
- One change requires edits in many classes (Shotgun Surgery)
- Client code navigates through object chains (Message Chains)