Título: Duda, mala práctica? Publicado por: n-utz en 9 Diciembre 2017, 23:51 pm Buenas,
Vengo con una duda, estoy haciendo un programa para la facultad, nada complicado. No es más que un ABM, por eso lo estoy haciendo bastante 'rapido', es decir, sin mucha dedicación solo para recordar Java. En un método me encontré con lo siguiente, hice esto para simplificar: Código: private Producto traerProducto(int idProducto) En una lista de productos, busco un producto por id. Si lo encuentra retorna el producto, si no, null. Mi duda es si es una buena o mala práctica utilizar múltiples return's en un mismo método. Yo lo hice para ahorrarme la variable flag. Esta duda me surgió porque recuerdo haber visto en un analizador de código que cuándo tenía múltiples return's debía simplificarlo. Pero acudo a ustedes a ver que me dicen. PD: Capaz haga una prueba de rendimiento (solo velocidad, aunque sospecho cual ganarà). Título: Re: Duda, mala práctica? Publicado por: crack81 en 10 Diciembre 2017, 01:24 am Pues en lo personal no hay mucho problema, aun asi puedes usar otra alternativa al famoso foreach y en su lugar usar streams
Código
Título: Re: Duda, mala práctica? Publicado por: rub'n en 10 Diciembre 2017, 02:52 am Pues en lo personal no hay mucho problema, aun asi puedes usar otra alternativa al famoso foreach y en su lugar usar streams Código
Es verdad con java8 el performance se incrementa mucho, por lo tanto es mejor... @crack81 sabes como extraer el index con stream? saludos Edito: Para Array de primitivos, retorna -1 si no esta, de lo contrario el preciado index >:D Código
Título: Re: Duda, mala práctica? Publicado por: Serapis en 11 Diciembre 2017, 17:19 pm La solución de un problema dado puede aparecer en cualquier punto dentro de una función.
En general si se sale de una función desde "cualquier" parte, el único problema que presenta es que para "ojos ajenos", pueda ser más difícil de leer... Entonces si programas para tí, haz lo que te venga en gana según tu criterio, y si programas para una empresa, sométete a la regla que allí sigan. En cualquier caso, la salida se puede diferir siempre al final de la función de modo que allí se resuma la devolución. Código: entero = funcion X(entero p) La función previa de ejemplo tiene varias salidas, pero todas pueden cosiderarse finales, por cuanto tras cada devolución, no hay más código que se fuera a ejecutar. Aún así los puristas prefieren siempre 1 o a lo sumo dos devoluciones, en tal caso puede modificarse como sigue: Código: entero = funcion X(entero p) |