Saltar la navegación

Ejemplo

Métodos de pago

Supongamos que estás trabajando para una tienda cuyos métodos de pago actuales son, efectivo y tarjeta débito, pero espera que para el próximo año tenga convenios que le permitan utilizar otros medios de pago como son las tarjetas de crédito, Paypal y Nequi. Dada la situación podemos prever una solución simple que es, crear una clase Pago con un método que contenga un condicional if-else o switch-case donde a partir del tipo de medio de pago, realice cierta acción.

Ejemplo - Diagrama de clases - Pago - sin aplicar el patrón
Ilustración 1. Diagrama de clases

Esta clase aunque cumple su función, presenta una alta dificultad para su mantenibilidad, ya que al querer cambiar o agregar un nuevo medio de pago se deberá alterar el método procesarPago, esto rompe el principio de abierto-cerrado, ya que el código existente debe ser alterado, de igual manera aumentaría su complejidad ya que el método crece en responsabilidades.

La otra solución es ver un punto de variación en los requisitos del cliente por lo cual crearemos una interfaz estable que facilite la adición de los bancos futuros.

Ejemplo - Diagrama de clases - Pago - aplicado el patrón
Ilustración 2. Diagrama de clases

Esto nos permite protegernos contras las variaciones ya que a futuro al querer agregar nuevos medios de pago, simplemente debemos crear una nueva implementación del método procesarPago sin necesidad de modificar las clases existentes.

Creado con eXeLearning (Ventana nueva)