Considere una situación en la que necesite llamar rutinas sucesivas y detenerse tan pronto como se devuelva un valor que podría evaluarse como positivo (verdadero, objeto, 1, str (1)).¿Se considera mala forma ejecutar una función dentro de una instrucción condicional?
Es muy tentador para hacer esto:
if (fruit = getOrange())
elseif (fruit = getApple())
elseif (fruit = getMango())
else fruit = new Banana();
return fruit;
me gusta, pero esto no es un estilo muy recurrente en lo que puede considerarse el código de producción profesional. Uno de ellos es probable que en lugar de código más elaborado como:
fruit = getOrange();
if(!fruit){
fruit = getApple();
if(!fruit){
fruit = getMango();
if(!fruit){
fruit = new Banana();
}
}
}
return fruit;
De acuerdo con el dogma de las estructuras básicas, es la forma anterior aceptable? ¿Lo recomendarías?
Editar:
pido perdón a aquellos que asumieron que estas funciones estaban destinados a ser fábricas o constructores. No lo son, solo son marcadores de posición. La pregunta es más sobre sintaxis que "factorizar". Estas funciones también podrían ser lambda.
Depende del idioma. – SLaks