Code Smell 36 - Switch/case/elseif/else/if statements

Code Smell 36 - Switch/case/elseif/else/if statements

Maxi Contieri
·Nov 28, 2020·

1 min read

Subscribe to my newsletter and never miss my upcoming articles

Listen to this article

First programming lesson: Control structures. Senior developer lesson: avoid them.

Problems:

  • Too many decisions together

  • Coupling

  • Duplicated code

  • Violation of Open/Closed Principle.

  • A new condition should not change the main algorithm.

  • Nulls

Solutions

  1. Polymorphism

  2. Create hierarchies/compose objects following Open closed principle.

  3. Use State pattern to model transitions.

  4. Use Strategy Pattern/Method Object to choose for branches.

Examples

  • Discrete Values

  • State transition

  • Algorithm choice.

Sample Code

Wrong

Detection

Since there are valid cases for If/else usages, we should not pull the plug and forbid these instructions. We can put a ratio of if statements/other statements as a warning instead.

Relations

More info

Credits

Photo by Adarsh Kummur on Unsplash

If debugging is the process of removing software bugs, then programming must be the process of putting them in.

Edsger Dijkstra


This article is part of the CodeSmell Series.

 
Share this

Impressum

Technical Opinions are my own. I don't have the revealed truth.

Software Design is a creative activity. These are hints and not rigid rules.

I write on BackEnd Business Systems and OOP Design. My advice/experience might not suit other systems.