Este proyecto consiste en realizar un sistema de control con el cual se pueda gestionar los productos
ofrecidos por una máquina de dulces empleando el paradigma de la programación orientada a objetos en
lenguaje Java. La maquina de dulces a trabajar está dividida por secciones o celdas, y en cada
celda están almacenados los productos que dispone la máquina. El usuario podrá realizar una selección
múltiple de productos ya sean pertenecientes a la misma celda o de diferentes celdas.
En el siguiente documento podrás encontrar de forma detallada el planteamiento del
problema a desarrollar, la estructura de paquetes y caracteristicas de los métodos:
Para tener una vista conceptual del sistema descrito en el problema podemos apoyarnos de herramientas
visuales como lo son un bosquejo de la máquina de dulces y el respectvo diagrama UML. En ésta sección se
detallarán los elementos mensionados.
La Figura 1 muestra un pequeño bosquejo de la composición de la máquina de dulces.
Se puede apreciar la representación de los productos con elementos de colores dentro de las celdas, y en
la parte inferior, los diferentes métodos o acciones que la máquina dispone.
Este proyecto se puede modelar a partir de 3 tablas: Productos, Celdas y Máquina de Dulces. Entre sus relacionestenemos que, una celda la componen productos, y a su vez, una máquina de dulces tiene celdas. De esta forma, nuestro diagrama UML resulta de la siguiente manera (ver Figura 2 ):
Como se comenta en la documentación, cada método implementado tiene una clase
Test asociada que evalua su funcionamiento. En este ocasión solo se mostrará el
funcionamiento de los métodos más relevantes con el fin de explicar la metodología del trabajo, para la
solución completa puede explorar el repositorio del código en github.
De acuerdo a lo anterior, en las Figuras 3 y 4 se presentan los códigos desarrollados para los métodos incrementarProductos y venderConCambio respectivamente. Del código se puede apreciar que se utiliza la colección de ArrayList para recorrer el conjuto de elementos de la celda. Por otro lado, a modo de buenas prácticas, se trabaja con la nomeclatura camelCase para las variables, y los métodos getter para culplir con el principio de encapsulamiento.
Con el fin de dar continuidad al resultado de los métodos mostrados anteriormente en las figuras 5 y 6 se presenta el código de las respectivas clases Test con su respuesta en consola.