Parece que veo esto con bastante frecuencia en mi código y en otros. No hay nada en eso que parezca terriblemente mal, pero me molesta ya que parece que se puede hacer mejor. Supongo que una declaración de caso, podría tener un poco más de sentido, pero a menudo variable es un tipo que no funciona bien o en absoluto con declaraciones de caso (dependiendo del idioma)
If variable == A
if (Flag == true)
doFooA()
else
doFooA2
else if variable == B
if (Flag == true)
doFooB()
else
doFooB2
else if variable == C
if (Flag == true)
doFooC()
else
doFooC2
Parece que hay varias formas de "factorizar" esto, como 2 conjuntos de if-elses, donde un conjunto se maneja cuando Flag == verdadero.
¿Hay una "buena manera" de factorizar esto, o tal vez cuando ocurre este algoritmo if-else, generalmente significa que está haciendo algo mal?
if (Flag == true)lugar de solo If (Flag)? Si crees que If (Flag == true)es mejor, ¿por qué no if ((Flag == true) == true)?