Tue
11
Jan '05
|
|
If you find this useful, you might like my other articles, too.
Sonja talks a little bit about wether a switch statement is a code smell or not but seems to miss the point. I think you should look at the amout of work/lines of code/whatever which is shared between all cases vs. the amount per case statement.
public void method(int a) { // n-pre lines of code switch (a) { case 1: // n-switch lines of code break; case 2: // n-switch lines of code break; // some more cases default: break; } // n-post lines of code }
If in this case n-pre or n-post are significantly larger than n-switch than I don’t think you could call the use of switch a code smell. If on the other hand n-pre/n-post are small or even worse zero, something could be wrong in the design. As soon as I find the time, I’ll try to make this into a PMD rule…