Patrones de Diseño - Façade
El Patrón de Diseño Façade (o Facade, o en español Fachada) es en mi opinión uno de los más básicos y simples, que todos hemos implementado alguna vez aún sin conocerlo.
Una fachada no se trata más que de un objeto que ofrezca una sencilla interfaz que ocultará uno o varios sistemas más complejos y sus interacciones.
Con este patrón ofrecemos un acceso sencillo y desacoplamos al máximo nuestro sistema cliente (el que accede a la fachada) de los sistemas ocultos.
Típicamente se utiliza en librerías o en sistemas diseñados en capas. Desde luego si estás construyendo un sistema que van a utilizar otros 20 sistemas de tu empresa, implementa una fachada.
Algunas ventajas que disfrutaremos en el propio desarrollo son :
- Facilitamos la utilización y comprensión (acompañando la interfaz con una documentación mínima) de los sistemas ocultados
- Los clientes se olvidan de toda la complejidad del negocio, sólo les importa los resultados obtenidos.
Y a la larga, el mantenimiento será más fácil
- En los clientes reducimos las dependencias del código externo.
- Aislamos a los clientes de cambios sustanciales en los sistemas ocultos, ya sea un cambio de requisitos, de diseño de base de datos, de tecnología utilizada…
- Hace el código cliente más legible
Este patrón de diseño se puede implementar como una interfaz o como una clase abstracta, sin detallar los detalles de implementación (es justo lo que queremos ocultar).
Es habitual que se implemente la fachada utilizando también el patrón Singleton (sólo se necesita una fachada).
Como vemos es un patrón de diseño muy simple e intuitivo, que nace del sentido común y experiencia. Los beneficios que nos ofrece son enormes en comparación con su coste de implementación.
Pero ojo, su no utilización nos provocará enormes problemas tanto a la hora de desarrollar como sobre todo en el mantenimiento. Podemos ver algo parecido a lo que te sucederá si no lo utilizas en la viñeta siguiente… Así que no te dejes de utilizarlo !
