Foro de elhacker.net

Programación => Java => Mensaje iniciado por: Deastruction en 16 Julio 2015, 23:12 pm



Título: Ayuda proyecto POO
Publicado por: Deastruction en 16 Julio 2015, 23:12 pm
Buenas.

Tengo un pequeño problema en cuanto a POO se refiere. En mi caso por ejemplo, debo crear un programa el cual debe tener opciones tales como crear/modificar/listar/eliminar personas, grupos, tareas todo esto por arreglos... Por lo cual tengo clases, tales como Persona, Grupo y Tarea, todas estas (mediante un diagrama de clases) pertenecen a una Agenda. Por lo cual en agenda llamo a las otras clases.

Ahora, según me dijeron en mi clase Agenda no debo tener los métodos crear/modificar/listar/eliminar de las otras clases y a partir de aquí me pierdo. Porque me dijeron que debo crear una clase que administre una clase en concreto, por ejemplo AdminitrarGrupo, en esta clase deben estar los métodos antes mencionados y esta clase AdministrarGrupo debe ser "llamada" por otra en la cual este el respectivo menú para esta clase.

Algo más, el arreglo donde se guardará cada objeto está inicializado en 2, y si el usuario ingresa más este debe modificarse mediante el uso de ArrayCopy y bueno, aparte que tengo poca experiencia con arrays, esto me confundió más

Podrían ayudarme con un ejemplo, ejercicio o lectura que me ayude a entender mejor esto?

Espero me haya explicado bien. Saludos


Título: Re: Re: Ayuda proyecto POO
Publicado por: Usuario Invitado en 18 Julio 2015, 03:12 am
Ahora no estoy en mi ordenador (estoy en el móvil) pero tratare de guiarte.

Lo que te estan pidiendo es que trabajes en capas. Como no has especificado cuantas capas, te sugiero que trabajes con MVC.

MVC significa Modelo Vista Controlador. Este patrón de diseño nos dice que debemos de separar nuestra aplicacion en 3 capas:

  • Modelo: En esta capa irán nuestras entidades (clases que representan a tablas de la BBDD), clases de servicios (servicios para la BBDD, de conexiones, validaciones), decoradores, factorías, etc. Aquí va todo lo que respecta a la lógica de tu aplicación.
  • Vista: No hay misterio. Aqui van tus JSP, faeletes, o interfaces Swing/JavaFX.
  • Controlador: En esta capa van las clases que hacen como intermedio entre las vistas y el modelo. Estas clases escuchan los eventos que ocurren en la vista y actúan de acuerdo al evento. Por ejemplo, en la vista se hace click en el botón registrar, entonces el controlador escucha ese evento y llama al método registrarUsuario del servicio ServicioUsuario.

Como ves la lógica de negocio està aislada, lo que nos permite una mayor escalabilidad y un mantenimiento facil de realizar, lo que no ocurriría si tuviésemos en la vista, código de negocio.



Respecto a lo segundo, puedes hacer un try catch capturando un ArrayOutOfBoundsException que se lanzará al intentar acceder a un índice fuera del array (que en este caso solo son 0 y 1 por ser 2 elementos). En el catch procedemos a copiar el array desbordado en otro.


Título: Re: Ayuda proyecto POO
Publicado por: Deastruction en 20 Julio 2015, 04:31 am
Muchas gracias por tu respuesta.

Cada una de las capas vendría a ser un paquete verdad? Si es así, creo que lo he entendido bien.

Alguna lectura que me recomiendes?

Saludos.


Título: Re: Ayuda proyecto POO
Publicado por: Usuario Invitado en 20 Julio 2015, 15:44 pm
Más que una distribución de paquetes es patrón de diseño que consiste en crear 3 capas y abstraerlas una de otras pero interactuando entre sí en forma secuencial: Vista -> Controlador -> Modelo, Modelo -> Controlador -> Vista.

En este enlace (http://codejavu.blogspot.com/2013/06/ejemplo-modelo-vista-controlador.html), puedes comprender bien cómo funciona el patrón MVC.

PD: Si puedes, léete mucho sobre patrones de diseño, son esenciales en el desarrollo de software.