Ir al contenido principal

Clases "Controladoras" y algo mas




Ejemplo:
Imagine el escenario donde Ud. llega a un local de comida rápida, seguramente ha hecho esto alguna vez en su vida, lo primero que hace es ir y decirle al cocinero, en voz alta por supuesto: “oye tu, quiero una hamburguesa doble carne bien cocida”, seguidamente le dice al muchacho de los refrescos: “me preparas una gaseosa enorme” y por último le dice al de las ensaladas: “¡me pones de todo con un poco de todo encima!”.

¿No es así como se acostumbra? 
Parece que no. 

Bien hagamos algunas correcciones. Ud. llega al local y lo recibe un cajero; nada de estar pegando gritos al cocinero y al resto del personal, seguidamente el cajero toma su pedido y él si procede a decirle al cocinero lo que Ud. quiere, le grita al de los refrescos su orden, y claro está, habla con el de las ensaladas para que le ponga de todo.


¿Ahora si estamos de acuerdo? 
No todavía. 

Hay que seguir haciendo cambios para mejorar nuestro modelo de atención al cliente en el local de comida rápida. Ud. llega al local, lo atiende el cajero y toma su pedido- “una hamburguesa doble carne bien cocida, refresco grande y ensalada gigante”,   efectúa el pago del pedido, el cajero le entrega su recibo y genera una orden de trabajo impresa, la cual utiliza el cocinero para preparar su carne, el muchacho de los refrescos la revisa para preparar su gaseosa y por último el chico de las ensaladas lee en ella su orden y se dispone a prepararle a Ud. su ensalada. 

Al final de este proceso le entregan a Ud. justo lo que pidió: “una hamburguesa sencilla, medio cruda, refresco pequeño y ensalada sencilla”. Bueno, puede que no sea exactamente lo que pidió, pero éste último modelo representa mejor el servicio de atención al cliente de nuestro local de comida rápida.



En el ejemplo anterior el cajero representa una clase borde o interfase del sistema de atención al cliente del local de comida rápida. El cocinero, el muchacho de los refrescos y el chico de las ensaladas representan clases entidades, y la orden de trabajo es precisamente una clase controladora. 

Observe como la clase orden de trabajo es capaz de convertir un mensaje de la clase cajero en una serie de mensajes y flujos de acción que son útiles para las otras clases entidades, que deben realizar el trabajo necesario para satisfacer el requerimiento solicitado.

Las clases controladoras sirven como intermediarios entre las clases interfases y las demás clases del sistema, especialmente las clases entidades. 


Comentarios

Entradas populares de este blog

El Melange todavía corre

Ese era el estribillo de un capítulo de unas de mis series favoritas de la infancia, Meteoro o Speed Racer. En ese capítulo un auto “fantasma” el X-3, aparecía de imprevisto y dejaba a todos asombrados con su rendimiento y prestaciones y volvía a desaparecer. Traigo ese episodio a colación puesto que recientemente sostuve una amena charla con un querido amigo, en la que el me manifestaba como los Mainframes habían muerto, o mejor dicho, el concepto de la computación distribuida basada en Mainframes había desaparecido. Para variar, yo no estuve de acuerdo, y le dije que por el contrario, el modelo de computación basado en Mainframes está mas vigente que nunca. Estos fueron mis argumentos:

Primeros pasos con Camunda BPM – Modelando un Proceso BPMN 2.0

Tenemos entre manos la tercera publicación de nuestra serie sobre la Plataforma de BPM de Camunda .  El día de hoy vamos, por fin, a empezar a modelar o construir nuestro primer proceso sencillo en notación BPMN 2.0. Para ello vamos a usar el modelador o editor que ya hemos instalado en nuestra primera publicación , y vamos a guardarlo en la sección de recursos del proyecto Maven Java que configuramos en la segunda publicación . Así que, como ya es costumbre, manos a las sobras…

Como configurar jBPM para usar nuestra propia Base de Datos en un sólo paso

Llevo un buen rato trabajando con jBPM en su serie 6.x, y mi opinión sobre este producto en la versión mecionada no ha mejorado para nada. Es una herramienta plena de funciones y caracteristicas avanzadas, pero tambien está llena de Bugs y es realmente inestable, sobre todo en el ambiente de modelamiento.  Así mismo, debo decir que tiene una muy aceptable API REST y que el motor de procesos y la consecuente ejecución de los procesos es estable y bastante rápida. En esta publicación daré inicio a una serie de artículos que hablan sobre ciertas configuraciones comunes e importantes que se hacen con jBPM. Hoy iniciamos con la configuración de jBPM para que use nuestra base de datos favorita. Esto tiene sentido porque el producto viene con la base de datos H2 por omisión, la cual es excelente para pruebas y evaluaciones rápidas de la herramienta, pero es completamente inaceptable en un ambiente de desarrollo, QA o producción cualquiera. Así que manos a l