void caller()
{
int var;
var = setvar();
if (var == 1)
func1();
else if (var == 3)
func3();
else if (var == 8)
func8();
}
void func1()
{
common();
//do something case 1 specific...
}
void func3()
{
common();
//do something case 3 specific...
}
void func8()
{
common();
//do something case 8 specific...
}
Dans ce cas, je me sens très mal à l'aise parce que j'ai une fonction en double. commun() qui pourrait être écrit à l'intérieur du appelant() pour supprimer les doublons. Je peux donc modifier le code ci-dessus comme suit :
void caller()
{
int var;
var = setvar();
if (var == 1 || var == 3 || var == 8)
common();
if (var == 1)
func1();
else if (var == 3)
func3();
else if (var == 8)
func8();
}
void func1()
{ //do something case 1 specific... }
void func3()
{ //do something case 3 specific... }
void func8()
{ //do something case 8 specific... }
Cependant, je me sens très mal à l'aise dans ce cas également, car appelant() vérifier maintenant var deux fois.
Je n'ai pas beaucoup d'expérience en matière de codage, et je ne sais donc pas ce qu'il faut prendre en compte pour choisir la meilleure solution. Quel est le meilleur code et pourquoi ? Que dois-je prendre en compte ?