Tormenta de patrones, Facade

En este articulo coy a comenzar con el análisis de un patrón muy común en el diseño de aplicaciones corporativas, el Facade (fachada).

Según una definición muy simple el facade, sirve para proveer de una interfaz unificada sencilla que haga de intermediaria entre un cliente y una interfaz o grupo de interfaces más complejas.
Para nuestro entendimiento he decidido modelar una situación exponiendo este patrón y que se pueda apreciar alguna funcionalidad sobre el mismo.Como herramienta de modelado voy a utilizar EA (Enterprise Architect) y esta herramienta trae plantillas de patrones, justamente el facade figura en estas plantillas y un buen comienzo es verificar lo que se propone desde el punto estructural.


(Asistente para la generación del patrón)


(Patrón generado)

Como prestaciones este patrón tiene:
  • Simplificar el uso y comprensión de una librería software.
  • Encapsular una interfaz de librería poco amigable en un interfaz más coherenteo mejor estructurado.
  • Centralizar las dependencias externas hacia la librería en uno o pocos puntos de entrada.
  • Reducir la dependencia de código externo en los trabajos internos de una librería, ya que la mayoría del código lo usa Facade, permitiendo así más flexibilidad en el desarrollo de sistemas.

Hasta este punto todo muy conceptual, pero el hecho es verlo en funcionamiento y para ello vamos a montar una solución de manejo de hipotecas simuladas para aplicar el concepto de facade.


En primer lugar les voy a mostrar el diagrama de clases básico sobre el que vamos a trabajar pero primero les enumero las entidades y el mapeo con el patrón:

Entidades:

  • Banco
  • Préstamo
  • Crédito
  • Cliente
  • Hipoteca

Ahora el mapeo con el eje conceptual del facade:


Hipoteca (Facade)
Banco, préstamo y crédito (subsistemas)
Cliente(entidad)



(Diagrama de clases simple)

Bien en este punto he generado con la herramienta el código base para armar el proyecto en visual studio y he agregado un formulario Windows para aplicar la solución.



(formulario en diseño)

Sobre el evento click del botón evaluar coloqué el siguiente segmento de código.



(código del evento)

En sus lugares, declaro la hipoteca (facade) luego hago la declaración del cliente mi entidad posteriormente llamo a un método de la hipoteca para verificar si es posible efectuar la operación, este método hace uso de los servicios para entregar la información consistente.

Esta información como muestra el ejemplo es mediante un mensaje emergente.
Veamos un diagrama de secuencia de todo el proceso para finalizar.



(Diagrama de secuencia)

Este tipo de patrones es muy utilizado en el diseño de aplicaciones porque aporta organización y consistencia a las operaciones desarrolladas, al final les dejo un video explicativo del proyecto realizado en C#.

Presentacion

Hasta el próximo articulo…que lo disfruten.

Entradas más populares de este blog

7 arquetipos #Polymer 1.0 puntos esenciales prácticos

El potencial de la nube en 5 pasos desde Buenos Aires y junto al ecosistema regional

Iniciando la representación de una mobile-web-page pensando en el rendimiento - Parte 1