DISEÑO

COMPOSITE

Dado que un pedido puede estar compuesto por múltiples elementos del menú (productos individuales o combos que a su vez pueden contener otros combos), el patrón Composite es ideal para representar esta estructura jerárquica. Este patrón permite tratar de forma uniforme tanto a los elementos individuales (productos) como a los compuestos (combos), facilitando operaciones como:

composite.png

  1. Calcular el precio total del pedido de forma recursiva.

  2. Mostrar detalles completos del contenido del pedido.

  3. Descontar del inventario los ingredientes necesarios para la realización del pedido

ARQUITECTÓNICO

Modelo-Vista-Controlador(MVC)

La arquitectura MVC facilita una separación clara de responsabilidades en el sistema:

MODELO:

VISTA:

CONTROLADOR:

Maneja la lógica de negocio (entidades como Pedido, Producto, Combo, lógica del patrón Composite, y acceso a base de datos en Supabase).

Interfaz de usuario desarrollada en React, que consume APIs REST para presentar datos y recibir entradas del usuario.

Controladores de Spring Boot que actúan como puente entre la vista (React) y el modelo (servicios y lógica de negocio). Reciben solicitudes HTTP, invocan servicios adecuados y devuelven las respuestas apropiadas (JSON).

mvc.jpg

Esta arquitectura modular facilita: •El mantenimiento y escalabilidad.

•La reutilización de componentes. •Una experiencia de usuario fluida gracias a la SPA (Single Page Application) en React.