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

Desperdicio de Variables

Estas en el tema de Desperdicio de Variables en el foro de Java en Foros del Web. Hola a todos, solamente tengo esta duda, Que es mejor usar una clase generica mas corto para diferentes cosas y desperdiciar variables, o usar muchas ...
  #1 (permalink)  
Antiguo 02/04/2008, 21:20
Avatar de Lophophora  
Fecha de Ingreso: mayo-2005
Mensajes: 366
Antigüedad: 19 años
Puntos: 0
Desperdicio de Variables

Hola a todos, solamente tengo esta duda,

Que es mejor

usar una clase generica mas corto para diferentes cosas y desperdiciar variables, o usar muchas clases pero sin desperdiciar tantas variables.

Saludos

Lophophora
__________________
P.L.U.R.
  #2 (permalink)  
Antiguo 03/04/2008, 00:17
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Re: Desperdicio de Variables

¿Desperdiciar variables?
__________________
Para obtener respuestas, pregunta de forma inteligente o si no, pregunta lo que quieras que yo contestaré lo que me dé la gana.
  #3 (permalink)  
Antiguo 03/04/2008, 02:18
Avatar de Lophophora  
Fecha de Ingreso: mayo-2005
Mensajes: 366
Antigüedad: 19 años
Puntos: 0
Re: Desperdicio de Variables

Si, si no me explique aqui les pongo un caso.

necesito 3 listas que hacen lo mismo pero necesitan diferentes datos.
si hago una clase generica y la instancio 3 veces por ejemplo una lista ligada se llama lista()

entonces hago
lista Lista1 = new lista();
lista Lista2 = new lista();
lista Lista3 = new lista();

Y digamos que lista() tiene un nodo() con 5 strings y 5 doubles

para la Lista1() necesito un double y un string (desperdicio 4 strings y 4 doybles)
para la Lista2() necesito un solo string (desperdicio 4 string y 5 doubles)
para la Lista3() necesito 5 doubles y 5 strings (no desperdicio nada)

si hago la Lista1() de tamaño muy grande, digamos 1000, desperdiciaria 4000 strings y 4000 doubles.

entonces mi pregunta es si combiene o si en terminos de rendimiento es mejor hacer 3 clases diferentes para cada lista y no desperdiciar tantas variables pero haciendo el codigo mucho mas grande, osea

Lista1 Lista1 = new Lista1(); con un nodo() con 1 string y 1 double
Lista2 Lista1 = new Lista2(); con un nodo() con 1 sting
Lista3 Lista1 = new Lista3(); con un nodo () con 5 strings y 5 doubles

Espero haber sido mas claro

Muchas Gracias

Lophophora
__________________
P.L.U.R.
  #4 (permalink)  
Antiguo 03/04/2008, 05:23
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Re: Desperdicio de Variables

Bueno, los ejemplos no tienen mucho sentido pero creo que entiendo a que te refieres . Esa es la pregunta del millon de dolares y, por supuesto, no tiene respuesta. Como en todo, depende.

Ni es bueno generar millones de clases distintas por que una tiene un int de mas y otra no, ni es bueno hacer una sola clase con todas las opciones posibles. El unico principio aplicable de forma general es el sentido comun y en mi caso, yo lo que intento es hacer algo que sea "humanamente comprensible".

De todas formas, no es algo muy habitual eso de tener tantas cosas opcionales que no se usan... si eso abunda es que el diseño no está muy allá.
__________________
Para obtener respuestas, pregunta de forma inteligente o si no, pregunta lo que quieras que yo contestaré lo que me dé la gana.
  #5 (permalink)  
Antiguo 03/04/2008, 05:55
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 16 años, 1 mes
Puntos: 253
Re: Desperdicio de Variables

Buenas.

No sé si he entendido muy bien tu problema pero yo haría una sola clase de tipo de lista. En todo caso tu duda se transladaría a los objetos nodo, que ya habría que ver si queires hacer una sola clase para Nodo con 5 strings y 5 ints y usarla sin darles valores a los atributos que no te hicieran falta o tres clases diferentes. Como ya han dicho, depende, pero yo te voy a sugerir una tercera opción: herencia.

Puedes crear una clase Nodo que tenga sólo un int, otra que herede de esta y añada un string y, por último, otra que herede de esta y añada 4 string y 4 int.

Y por ser tú, te voy a dar otra solución más óptima todavía. Crea una clase Nodo con dos atributos de tipo Collection, elige la clase que más te guste, ArrayList o Set o lo que quieras, pero que sea Collection. Así puedes añadir cuantos string o int quieras sin necesidad de desperdiciar atributos. Sería recomendable en este caso controlar también el tamaño de las colecciones con dos atributos int, para mayor claridad. Y ahí lo tienes una sola clase que te vale para todos tus ejemplos.

Espero haberte ayudado. Hasta pronto.
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 18:32.