Find some code snippets that can be grouped and called atomically.
TL;DR: Group your cohesive sentences together
Problems Addressed
Readability
Complexity
Code Reuse
Related Code Smells
Steps
Move the code fragment to a separate new method
Replace the old code with a call to the recently created method.
Sample Code
Before
object Ingenuity { fun moveFollowingPerseverance() { //take Off raiseTo(10 feet) //move forward to perseverance while (distanceToPerseverance() < 5 feet){ moveForward() } //land raiseTo(0 feet) } After
object Ingenuity { //1. Move the code fragment to a separate new method private fun takeOff() { raiseTo(10 feet) } //1. Move the code fragment to a separate new method private fun moveForwardToPerseverance() { while (distanceToPerseverance() < 5 feet){ moveForward() } } //1. Move the code fragment to a separate new method private fun land() { raiseTo(0 feet) } fun moveFollowingPerseverance() { takeOff() //2. Replace the old code with a call to the recently created method. moveForwardToPerseverance() //2. Replace the old code with a call to the recently created method. land() //2. Replace the old code with a call to the recently created method. } } Type
[X] Automatic
Many IDEs support this safe refactoring
Limitations
Does not work well if you use meta-programming anti-pattern.
Tags
Complexity
Readability
Related Refactorings
- Move method to a new class
Credits
This article is part of the Refactoring Series.
Top comments (0)