Todo lo que acabas de ver en este artículo es solo una pequeña parte del libro Introducción a los patrones de diseño, el libro más completo de patrones de diseño en español, abarcamos 25 patrones de diseño junto con 25 proyectos del mundo real. Olvídate de aprender patrones de diseño con los ejemplos típicos de Internet de cómo hacer una pizza, animales y figuras geométricas. te invito a que veas mi libro:
Ver libroFacade
Patrón de diseño estructuralEl patrón Facade (fachada) tiene la característica de ocultar la complejidad de interactuar con un conjunto de subsistemas proporcionando una interface de alto nivel, la cual se encarga de realizar la comunicación con todos los subsistemas necesarios. La fachada es una buena estrategia cuando requerimos interactuar con varios subsistemas para realizar una operación concreta ya que se necesita tener el conocimiento técnico y funcional para saber qué operaciones de cada subsistema tenemos que ejecutar y en qué orden, lo que puede resultar muy complicado cuando los sistemas empiezan a crecer demasiado.
En la imagen podemos apreciar los componentes que integran el patrón Facade, los cuales se explican a continuación:
- IFacade: Proporciona una interface de alto nivel que oculta la complejidad de interactuar con varios sistemas para realizar una operación.
- Client : Sistema o evento que interactúa con la fachada.
- DefaultFacadeImpl: Representa la implementación de IFacade y se encarga de comunicarse con todos los subsistemas.
- Subsystems: Representa módulos o subsistemas que exponen interfaces para comunicarse con ellos.
- El cliente invoca una operación de la fachada.
- La fachada se comunica con el SubsystemA para realiar una operación.
- La fachada se comunica con el SubsystemB para realiar una operación.
- La fachada se comunica con el SubsystemC para realiar una operación.
- La fachada responde al cliente con el resultado de la operación.
Ejemplo del mundo real
Mediante la implementación del patrón de diseño Facade implementaremos un sistema que permite realizar pagos en línea, para lo cual será necesario interactuar con varios sistemas, dichos sistemas conllevan una cierta complejidad, por lo que interactuar con todos los subsistemas puede ser muy complicado, sobre todo para los programadores que no tienen contexto del funcionamiento de los subsistemas. Por lo cual se implementará una fachada que permita exponer operaciones de alto nivel, las cuales se encarguen de interactuar con los |subsistemas y abstrae a los programadores de la complejidad de interactuar con dichos sistemas.
¿Sabes la importancia de los patrones de diseño?
Los patrones de diseño son la clave para crecer profesionalmente hacia la arquitectura de software, sin mencionar que los salarios son los más altos de la industria de IT, descúbrelo en este video.