Foros del Web » Programación para mayores de 30 ;) » Java »

Es mejor hacer un método grande o hacer varios métodos?

Estas en el tema de Es mejor hacer un método grande o hacer varios métodos? en el foro de Java en Foros del Web. Pues estoy estudiando java y me surge esta duda. Desde el punto de vista de la funcionalidad del programa (rapidez etc ) , que es ...
  #1 (permalink)  
Antiguo 29/08/2012, 04:25
 
Fecha de Ingreso: diciembre-2011
Mensajes: 134
Antigüedad: 12 años, 4 meses
Puntos: 5
Es mejor hacer un método grande o hacer varios métodos?

Pues estoy estudiando java y me surge esta duda.


Desde el punto de vista de la funcionalidad del programa (rapidez etc ) , que es mejor, crear un método con muchas lineas de codigo y que haga lo que necesitemos de una vez, o mejor crear un método pequeño y reutilizarlo o muchos métodos pequeños.


Os pongo un pequeño ejemplo para que me entendáis.

Quiero obtener 20 números aleatorios para jugar a la loteria. que es mejor, un método que ya me saque los 20 números aleatorios o un método que solo obtenga un numero aleatorio y llamarlo 20 veces ?
  #2 (permalink)  
Antiguo 30/08/2012, 06:02
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 6 meses
Puntos: 454
Respuesta: Es mejor hacer un método grande o hacer varios métodos?

Hola:

Tu ejemplo es demasiado trivial, java ya tiene un método que genera números aleatorios, así que no tiene mucho sentido hacer un método que dentro sólo tenga una llamada a la api de java

Código java:
Ver original
  1. public double random() {
  2.    return Math.random();
  3. }

Otro tema es que quieras hacer algo más en el método (como hacer que el valor esté en un rango concreto o verificar que ese valor no ha salido ya anteriormente).

Desde el punto de vista de rapidez de ejecución, siempre es mejor un método grande todo seguido. Ahorras el tiempo que se pierde en hacer llamadas a métodos, reservar espacio para variables locales, destruirlas luego y hacer return (no el tiempo de ejecución del código dentro del método, sino el tiempo de preparar la llamada y de volver luego al principal).

Desde el punto de vista de tamaño en memoria, si no hacer métodos te obliga a repetir código en el método grande, un método grande ocupará más memoria. (Quizás no es tu caso de los 20 números aleatorios, porque supongo que el código que metas dentro del bucle para 20 números, será exactamente el mismo que el que pondrías dentro del método y no repites código ninguno).

En cuanto a claridad y reutilización del código, normalmente es mejor hacer métodos pequeños. Es más fácil que alguien entienda que hace un método pequeño que entender qué hace un método gigante. Es más posible que más adelante en tu código puedas llamar a un método pequeño que hace una cosa concreta que que puedas llamar a un método grande que hace muchas cosas. Es decir, si java no tuviera el método de generar números aleatorios y tuvieras que hacerlo tú, es más probable que uses un método que te devuelve un número aleatorio que un método que te devuelve 20 números aleatorios.

Como consejo, normalmente no te preocupes de la eficiencia del programa hasta que empieces a tener problemas de eficiencia. Es mejor preocuparse y codificar de forma que el código sea lo más claro posible para otros programadores (o para tí mismo en un futuro, cuando ya no te acuerdes de qué habías hecho).

Se bueno.
__________________
Apuntes Java
Wiki de Programación

Etiquetas: grande, programa
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:06.