Ayuda proyecto POO

Iniciado por Deastruction, 16 Julio 2015, 23:12 PM

0 Miembros y 1 Visitante están viendo este tema.

Deastruction

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

Usuario Invitado

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.
"La vida es muy peligrosa. No por las personas que hacen el mal, si no por las que se sientan a ver lo que pasa." Albert Einstein

Deastruction

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.

Usuario Invitado

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, 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.
"La vida es muy peligrosa. No por las personas que hacen el mal, si no por las que se sientan a ver lo que pasa." Albert Einstein