Refactor existing code to reduce coupling, split monolithic structures, improve architecture, and apply design patterns. Use when code has grown too large, has circular dependencies, violates SOLID principles, or needs architectural improvements.