Saltar la navegación

Ejemplo

Registrar lista de pedidos en una aplicación de un Restaurante

Haces parte de un proyecto para la creación de una aplicación para un restaurante. Debes desarrollar la funcionalidad “registrar la lista de pedidos de un cliente”. Esta lista se debe registrar al presionar un botón en pantalla.


Una posible solución se vería de la siguiente forma:

Solución sin el patrón
Ilustración 1 Solución sin el patrón

En esta situación ¿quién debe ser el responsable de crear los pedidos?. Al aplicar el patrón la responsabilidad es de la clase Cliente porque agrega los pedidos.

Solución aplicando el patrón rompiendo la cohesión
Ilustración 2 Solución aplicando el patrón rompiendo la cohesión

Sin embargo, esta solución no es correcta porque se está violando el patrón alta cohesión al asignar a la clase Cliente la responsabilidad “agregarPedido()”. Además, se está generando un alto acoplamiento entre la clase Cliente y la clase Pedido, dificultando su reutilización.

La solución correcta nos lleva a definir la clase RegistrarPedido, que agrega tanto al cliente como al pedido que se va a registrar, por lo tanto también tiene la responsabilidad de crear las respectivas instancias, como se observa en la Ilustración 3.

Solución aplicando el patrón manteniendo la cohesión
Ilustración 3 Solución aplicando el patrón manteniendo la cohesión

Creado con eXeLearning (Ventana nueva)