Como algunos sabéis, estoy haciendo un máster de informática.
Ha habido todo tipo de asignaturas de momento, pero en general me han gustado, aunque la de UML... buff me cuesta un huevo ponerme con los diseños.
Las otras han sido XML y servidores, JAVA con EJBs y Servicios Web, y Patrones de programación.
En una de las práticas, la de patrones de programación, tenía que hacer una aplicación que simulase un restaurante de 6 mesas, atendido por un camarero simpaticón que se llamaba "Johnny". Como digo, realizada usando patrones.
Al final, como hemos trabajado en equipo 3 colegas durante todo el máster en las diferentes asignaturas, y repito... las de uml no se me daban bien... a mi me ha tocado hacer esta práctica, casi por triplicado, pero con mucho gusto.
¡A ver, para que no nos lleve a confusión! Cada uno ha hecho sus prácticas, pero es mucho más fácil hacerlas si trabajas en equipo, orientas, ayudas, o tu haces una parte que otro no sabe, y otro hace una parte que tu no sabes, y luego así ya la puedes trabajar para que quien no la sabía, aprenda.
Así pues, como digo, la práctica de patrones me tocó a mi.
He usado los siguientes patrones
builder: nos sirve para construir el menú y cada uno de los objetos de la carta
state: controlará los estados de la mesa, que pueden ser libre, comiendo, esperando (la factura)
observer: se encargará de avisar al camarero, cuando una mesa cambie de estado
facade: me actuará de fachada para calcular el precio de la factura y ver de qué estaba compuesta
Como comento, la he hecho por triplicado.
Una era una aplicación swing normalita, con 6 mesas y botones para lanzar los cambios de estado.
Otra parecida, pero un poco más currada en cuestión de interface, con imágenes de los simpsons simulando el bar de mou.
Y en la última, que acabo de terminar, en vez de tener una aplicación hecha en swing, la he hecho básica, y que sacase los mensajes por el log.
¡Os enseño el resultado de esta última!
---------------------------------------------------------------------------------------
EL MENÚ DEL ELVIS PRESLEY'S BURGER ES:
Hamburguesas:
Suspicious Mind, Increíble hamburguesa de ¼ de libra, con cebolla a la plancha, bacón y queso : 5.5
My Way, Increíble hamburguesa de ¼ de libra con lechuga y tomate e ingredientes a escoger entre: relish (salsa de pepinillo dulce picado), cebolla, huevo, bacón y queso : 4.0
Patatas:
Classics: Las patatas clásicas de corte fino, por sólo 22.0€
Delux: Patatas de corte grueso con salsa especial, por sólo 3.0€
Postres:
New York Cheese: Cake: Tarta de queso, por sólo 4.95€
Manhattan Apple: Tarta de manzana, por sólo 4.5€
Bebidas:
Elvis-Cola: , por sólo 1.5€
Surrender: Zumo de frutas, por sólo 2.0€
ABRIMOS EL RESTAURANTE POR LA MAÑANA TEMPRANO PARA USTED:
Johnny: La mesa 1 cambia al estado libre
Johnny: A limpiar la mesa para esperar nuevos clientes
Johnny: La mesa 2 cambia al estado libre
Johnny: A limpiar la mesa para esperar nuevos clientes
Johnny: La mesa 3 cambia al estado libre
Johnny: A limpiar la mesa para esperar nuevos clientes
Johnny: La mesa 4 cambia al estado libre
Johnny: A limpiar la mesa para esperar nuevos clientes
Johnny: La mesa 5 cambia al estado libre
Johnny: A limpiar la mesa para esperar nuevos clientes
Johnny: La mesa 6 cambia al estado libre
Johnny: A limpiar la mesa para esperar nuevos clientes
LA MESA 1 ES OCUPADA POR UNA AGRADABLE PAJERA QUE QUIERE ALMORZAR:
PIDEN UNA Suspicious Mind
PIDEN UNA My Way con Cebolla, Bacon, Queso
PIDEN UNAS PATATAS Classics
PIDEN 2 BEBIDAS Elvis-Cola
PIDEN 1 POSTRE New York Cheese y otro Manhattan Apple
Johnny: La mesa 1 cambia al estado comiendo
Johnny: Cocinero!!!! una de....
- Suspicious Mind, Increíble hamburguesa de ¼ de libra, con cebolla a la plancha, bacón y queso : 5.5
- My Way, Increíble hamburguesa de ¼ de libra con lechuga y tomate e ingredientes a escoger entre: relish (salsa de pepinillo dulce picado), cebolla, huevo, bacón y queso : 4.0
** Cebolla
** Bacon
** Queso
- Classics: Las patatas clásicas de corte fino, por sólo 22.0€
- Elvis-Cola: , por sólo 1.5€
- Elvis-Cola: , por sólo 1.5€
- New York Cheese: Cake: Tarta de queso, por sólo 4.95€
- Manhattan Apple: Tarta de manzana, por sólo 4.5€
LOS CLIENTES HAN TERMINADO DE COMER Y ESTÁN ESPERANDO A LA FACTURA
Johnny: La mesa 1 cambia al estado esperando
Johnny: La factura de los señores es
La factura es:
Suspicious Mind - precio:5.5
My Way - precio:4.0
Classics - precio:22.0
Elvis-Cola - precio:1.5
Elvis-Cola - precio:1.5
New York Cheese: Cake - precio:4.95
Manhattan Apple - precio:4.5
*************
A pagar: 45.45€
LOS CLIENTES DE LA MESA 1 ESTÁN CONFORMES Y LA COMIDA LES HA GUSTADO, YA SE VAN, PERO VOLVERÁN
Johnny: La mesa 1 cambia al estado libre
Johnny: A limpiar la mesa para esperar nuevos clientes
---------------------------------------------------------------------------------------
Supongo que leyendo el log, habréis observado como se construyen los objetos (usando builder). Como la mesa va cambiando de estado (State), y como estos cambios de estado desencadenan que al pobre Johnny le toque currar. (observer)
Y como finalmente, para ver el pedido y calcular su precio, uso el facade.
Sí, es un post un poco chorra... y realmente no explico mucho de programación para aquellos que hayan llegado hasta aquí ávidos de instrucciones, pero me apetecía escribir algo de mi "vida estudiante-profesional".
Si alguien está interesado en alguna cosa más, como el diseño de clases, como he implementado algún patrón, o como he hecho lo que sea, no tiene más que dejar un comentario, y su petición será atendida! :)
¡Un saludo patronil!