1
C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más / Ejercicio de Patrones de Diseño en Java
« en: 16 de Diciembre 2022, 19:50 »
Hola chicos, no sé si podríais ayudarme con un ejercicio que me está resultando algo difícil. Tengo algunas dudas con los patrones de diseño y me cuesta diferenciarlos. Y en el ejercicio que os dejo a continuación me han pedido implementar el código en java para todo el proyecto además de diseñar el diagrama de clases, incluyendo los distintos patrones que se implementen.
Os indico los patrones que hemos llegado a ver:
Simplemente con que me ayudéis a distinguir las distintas clases que habría (con sus respectivos atributos) y los patrones que serían necesarios me ayudaríais un montón![Sonrisa :)](https://aprenderaprogramar.com/foros/Smileys/default/smiley.gif)
Os dejo el enunciado del ejercicio a continuación y gracias de antemano:
Os indico los patrones que hemos llegado a ver:
- Singleton
- Factory Method
- Abstract Factory
- Adapter
- Composite
- Facade
- Decorator
- Template Method
- Observer
- Strategy
Simplemente con que me ayudéis a distinguir las distintas clases que habría (con sus respectivos atributos) y los patrones que serían necesarios me ayudaríais un montón
![Sonrisa :)](https://aprenderaprogramar.com/foros/Smileys/default/smiley.gif)
Os dejo el enunciado del ejercicio a continuación y gracias de antemano:
Citar
Un Centro de Convenciones necesita un sistema informático que de manera automática gestione la reserva y ocupación de sus espacios. Los espacios representan los salones de que dispone. El sistema deberá ser capaz de registrar nuevos espacios. De un espacio se debe registrar su código, su nombre, su capacidad y un listado (histórico) con el coste por día para cada año desde que se habilitó el espacio. De ese listado es de donde se debe tomar el coste para poder calcular los ingresos. A un espacio dado se le puede añadir equipamiento extra (opcional) en función del evento que se celebre. Este equipamiento puede ser una ornamentación especial, un equipo de música con sus altavoces o un escenario si el evento lo requiere. De estos equipamientos se debe registrar, un código numérico identificativo, su descripción y el coste de ese equipamiento que será una cantidad que dependerá de cada caso (un mismo equipamiento podrá tener precios distintos para espacios y momentos distintos) y deberá introducir el usuario cada vez que se use dicho equipamiento. El sistema debe estar abierto a poder extender a nuevos equipamientos si aparece una nueva demanda. Solo se pueden reservar aquellos espacios que aparezcan en el sistema. De la reserva se debe registrar el nombre del cliente que hizo la reserva, su teléfono, la fecha del evento, el código del espacio que se reserva y la lista de consumiciones que se hayan hecho en total. De una consumición se debe registrar el producto que se ha consumido y la cantidad. Las consumiciones las prepara la cocina que dispone el centro de convenciones. La cocina dispone de su propia carta de productos que se organiza por secciones. Así se puede encontrar una sección de menús, otra con platos individuales, y otra de bebidas o cócteles. De cada producto que se oferte para su consumición se debe registrar un código, su descripción y un listado (histórico) con coste del producto para cada año desde que está disponible. El sistema debe estar abierto a poder añadir nuevos tipos de productos u oferta a su carta.
Tanto los espacios como productos dados de alta en el sistema no se eliminan. En caso de no estar disponible por la causa que fuere, se deberá registrar su no disponibilidad para que no se pueda hacer uso de él. En el caso de que volviera a estar disponible, solo haría falta actualizar su disponibilidad para poder acceder al recurso.
La primera vez que arranque el sistema deberá crear el objeto carta del cual dependerán jerárquicamente las secciones y, de estas, los productos disponibles para su preparación en la cocina del Centro de Convenciones.
Gestión de espacios
• Dar de alta un nuevo espacio. Se le añade un precio para el año en curso.
• Añadir un nuevo precio a todos los espacios para un año dado. Para ello se solicitará el año que se quiere registrar y el porcentaje de incremento sobre el precio del año anterior. Si para un espacio ya existe precio para ese año o no existe para el año anterior entonces no se llevará a cabo acción alguna sobre ese espacio.
• Hacer disponible un espacio ya existente
• Hacer no disponible un espacio ya existente
• Listar la información de todos los espacios disponibles.
Gestión de Reservas
• Dar de alta. Para ello, se mostrará un listado con todos los espacios disponibles para la fecha seleccionada y que tenga la capacidad adecuada para albergar el número de personas que van a participar en el evento que se desea organizar. En caso de que no haya espacios que cumplan esas condiciones, se terminará el
proceso sin dar de alta la reserva. En caso contrario, se seleccionará un espacio y, a continuación, se solicitará al usuario si el espacio reservado requiere de algún equipamiento especial. El equipamiento así asignado no se puede cambiar para dicha reserva. Cualquier cambio implicaría cancelar la reserva y reiniciar el proceso. Por último, se consignarán aquellas peticiones de consumición que se desea realizar a priori. • Dar de baja una reserva. La elimina del sistema. Sólo se puede dar de baja una reserva si la fecha de la reserva todavía no ha vencido.
• Añadir una nueva consumición a una reserva. Se contempla la posibilidad de añadir nuevas consumiciones a una reserva con anterioridad o durante la celebración del evento.
• Eliminar una consumición de una reserva.
• Listar la información de todas las reservas.
• Mostrar la información de una reserva concreta.
Gestión de la Carta de Productos
• Dar de alta una sección de la carta. A la hora de dar de alta una nueva sección se ha de indicar el nombre de la nueva sección de la cuál dependerán nuevos productos.
• Dar de alta un nuevo producto. Un nuevo producto puede ser desde un menú ya predefinido, a un plato o coctel concreto. Para dar de alta un nuevo producto se debe seleccionar la sección donde se le quiere incluir. Para ello el sistema mostrará el listado de secciones existente. Se le añade un precio para el año en curso.
• Añadir un nuevo precio a todos los productos de la carta para un año dado. Para ello se solicitará el año que se quiere registrar y el porcentaje de incremento sobre el precio del año anterior. Si para un espacio ya existe precio para ese año o no existe para el año anterior entonces no se llevará a cabo acción alguna sobre ese espacio.
• Hacer disponible un producto ya existente
• Mostrar la información de una sección con los productos disponibles.
Gestión económica
• Mostrar los ingresos totales obtenidos por un espacio en un periodo concreto. Este periodo debe ser anterior a la fecha actual.
• Mostrar los ingresos totales obtenidos del centro de convenciones en un periodo concreto. Este periodo debe ser anterior a la fecha actual.