/Proyecto_DisSoft

Proyecto para la asignatura de diseño de software

Primary LanguageJava

Centro comercial.

Proyecto para la asignatura Diseño de software, el cual consiste en una simulación de un centro comercial.

Tabla de contenido.

Descripción.

Centro comercial, que nos presenta una lista de clientes y tiendas, despúes de seleccionar un cliente y solicitar un carrito de compras, podrá a empezar a añadir elementos a su carrito, para luego procesar un pago.

Capturas de pantalla.

Menú principal:

capturas_menu

Desde aquí, seleccionamos a un cliente y solicitamos un carrito para empezar a comprar en la tiendas.

Menú tienda:

capturas_menu_tienda

Presionamos en los artículos que deseamos comprar para moverlos al carrito.

Menú para ver los detalles del carrito:

capturas_menu_detalles_carrito

Vemos los artículos que tenemos en el carrito, el precio total y los detalles de algún artículo en particular.

Menú para realizar el pago:

capturas_menu_realizar_pago

Realizamos el pago del carrito.

Menú para ver los detalles de un paquete:

capturas_menu_detalles_paquete

Vemos todos los artículos contenidos dentro de un paquete.

Patrones de diseño utilizados:

Patrones:

    Singleton
    Decorator
    Factory
    Observer
    Iterator

Diagramas de cada patrón:

Singleton:

diagrama_clases_singleton

La implementación de este patrón es muy sencilla, únicamente se usa para mantener una única instancia y un punto de acceso global a la factoría de las tiendas.

Decorator:

diagrama_clases_decorator

Para esta situación, el uso del patrón Decorator nos es muy útil para crear paquetes de artículos e incluso paquetes de paquetes, ya que cada paquete es un artículo. De igual forma, el precio para un paquete se puede calcular de una manera muy sencilla siguiendo el diseño que este patrón nos ofrece.

Iterator:

diagrama_clases_iterator

Los objectos Enumeration son utilizados para recorrer una colección de elementos en algún orden no especificado. Para nuestro caso, estos objectos se usan para iterar sobre algún conjunto de datos (clientes o artículos) y posteriormente ir mostrándolos en pantalla (tablas o listas).

Abstract Factory:

diagrama_clases_abstractFactory

Este patrón de diseño nos facilita mucho la creación de familias de objectos. Para esta situación en particular en la que tenemos objetos que no dependen entre sí, la creación de este conjunto de tiendas es muy sencilla.

Observer:

diagrama_clases_observer

Este patrón de diseño no solo se usa en este contexto específico del sistema, sino también para mandar notificaciones entre ventanas para responder de cierta manera ante las acciones del usuario; dibujar el estado del carrito en pantalla según los cambios que se hagan dentro de él, o simples acciones internas que se realizan dentro de las tablas para actualizar los datos.

State:

diagrama_clases_state

Este patrón es utilizado para la clase CarritoCompras el cual nos ayuda a procesar los estados que el carrito tiene cuando se ejecuta una acción. Este patrón también es utilizado para la parte gráfica y, uniéndolo con el patrón Observer, nos permite actualizar elementos visuales que representan al carrito.

Información adicional.

Prerequisites

Java 8 o superior.

Installing

  • Instalar Java 8 o superior.
  • Descargar la carpeta de ejecutable.
  • Ejecutar el archivo .jar

Creado con:

Version

1.0

Authors

Lista de contribución contributors que han participado en el proyecto.