Also known as

Code Smell Switch Statements

Signs and Symptoms

You have a complex switch operator or sequence of if statements.

Reasons for the Problem

Relatively rare use of switch and 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.

Treatment

Payoff

  • Improved code organization.

When to Ignore

  • When a switch operator performs simple actions, there is no reason to make code changes.

  • Often switch operators are used by factory design patterns (Factory Method and Abstract Factory) to select a created class.

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...