Java - Estructura a seguir recomendada para progamas.

 
Vista:
sin imagen de perfil

Estructura a seguir recomendada para progamas.

Publicado por Jordi (135 intervenciones) el 12/05/2017 00:02:27
Hola chicos,
Os cuento mi duda ya que tras preguntarle a Google varias veces, formulando la pregunta de distintas maneras, no he logrado encontrar nada que hable de este tema pese a que es algo realmente simple. Dejo la pregunta resumida con una pequeña extensión de mi duda abajo.

¿ Qué es mejor, administrar la instanciación de las clases y la ejecución de sus métodos desde el método main del programa o simplemente crear una instancia de un objeto principal desde el que se vaya ejecutando todo el código ?

Sé que parece tan simple que incluso suena a que esté preguntando por preguntar. Pero pensándolo un poco mejor hay bastante diferencia entre hacer un programa administrando los métodos a ejecutar desde main o simplemente creando una clase desde la que se vaya ejecutando todo, incluida la instanciación de nuevas clases y tal. Yo he visto unas ventajas e inconvenientes de cada cosa que dejo a continuación, pero teniendo en cuenta que solo llevo 4 meses estudiando java de forma autodidacta es altamente probable que esté diciendo una tontería en estos puntos:

Ventajas de administrar la ejecución del programa desde main:



Ayuda a que el programa tenga una mayor flexibilidad en el aspecto de paso de datos de una clase a otra, me explico en el siguiente ejemplo: Main almacena el flujo de entrada de un JPanel con varios listeners, y estos datos los pasa a un objeto X que está instanciado dentro de otros objetos.

Desventajas de administrar la ejecución del programa desde main:



Mayor dificultad a la hora de escribir y leer el código ya que este método podría terminar siendo un completo caos con 200 variables distintas creadas para iterar bucles, constantes, etc...

Ventajas de administrar la ejecución del programa desde las clases:



Mejor organización y más sencilla comprensión del código.

Desventajas de administrar la ejecución del programa desde las clases:



Para pasar datos de una clase a otra muy distante, ya desde que la clase que produce el dato es instanciada tiene que ejecutarse un método getDatoAPasar + setDatoAPasar en todas las clases que hay de camino a la que lo solicita.

Ejemplo de ejecutar desde las clases por si no me he terminado de explicar bien:

Quiero hacer un juego de parejas, este tendrá una ventana principal en la que se soliciten unos datos para empezar a jugar, como las parejas que se quieren en el tablero, dificultad, colores, etc... Esta ventana será ejecutada desde la clase VentanaPrincipal. Y al pulsar el botón de Start esta ventana se cierra y se instancia la clase VentanaJuego que a su vez esta instancia a AlgoritmoDeGeneraciónCartas y llama a getArrayListDeCartas(). VentanaJuego también tiene dentro unos JPanel (cartas) con un MouseListener (flujo de entrada). Esta sería más o menos la estructura que seguiría un programa que administra su ejecución desde las clases. Esto haría que algunas clases crearan ramas (varias clases que a su vez instancias otras clases) y que para pasar un dato desde una rama a otra haya que usar muchos get y set.

Saludos y muchas gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

Estructura a seguir recomendada para progamas.

Publicado por Dante (19 intervenciones) el 12/05/2017 05:41:39
Por experiencia y a mi punto de vista es preferible segmentar el código en clases, ya que las variables y procedimientos se iran consumiendo recursos a medida que se vayan instanciando y utilizando, si metes todas las variables en la clase principal utilizaras la memoria de forma poco eficiente. Ademas la segmentación en clases te permite utilizar las ventajas de la POO ya que puedes reutilizar codigo y mantener un orden. Lo que si es importante es diseñar cada clase de la forma mas genérica posible de acuerdo a tus necesidades, para poder reutilizar código y ahorrar tiempo de desarrollo.

.... Utilizar todo el código en una sola clase hace perder el sentido de utilizar un lenguaje de programación orientado a objetos, para eso mejor eligiria programación estructurada.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Estructura a seguir recomendada para progamas.

Publicado por Jordi (135 intervenciones) el 12/05/2017 10:35:00
¿ Cómo se hace para afrontar el problema que describo sobre el paso de datos de una clase a otra en una estructura de este tipo ?¿ Existe algún patrón a seguir para que un programa sea más flexible en este aspecto, o alguna estructura que me permita pasar datos de una clase que se encuentra al final de una rama a una que esté en otra rama?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar