
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:
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.
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...
Mejor organización y más sencilla comprensión del código.
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.
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


0