Code Smell Switch Statements
Signs and Symptoms
You have a complex
switch operator or sequence of
Reasons for the Problem
Relatively rare use of
case operators is one of the hallmarks of object-oriented code. Often code for a single
switch can be scattered in different places in the program. When a new condition is added, you have to find all the
switch code and modify it.
As a rule of thumb, when you see
switch you should think of polymorphism.
After specifying the inheritance structure, use Replace Conditional with Polymorphism.
If there are not too many conditions in the operator and they all call same method with different parameters, polymorphism will be superfluous. If this case, you can break that method into multiple smaller methods with Replace Parameter with Explicit Methods and change the
If one of the conditional options is
null, use Introduce Null Object.
- Improved code organization.
When to Ignore
switchoperator performs simple actions, there is no reason to make code changes.
Tired of reading?
No wonder, there are 7 hours worth of the text on this website.
Try out something different. We've just launched the interactive learning course on refactoring. It has more content and much more fun than a boring text.Learn more...