Facade

Patrón de diseño estructural

El 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.

Estrucura del patrón Facade
Estrucura del patrón Facade

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.
Diagrama de secuencia del patrón Facade
Diagrama de secuencia del patrón Facade
  1. El cliente invoca una operación de la fachada.
  2. La fachada se comunica con el SubsystemA para realiar una operación.
  3. La fachada se comunica con el SubsystemB para realiar una operación.
  4. La fachada se comunica con el SubsystemC para realiar una operación.
  5. 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.

Descubre como el patrón Facade nos ayuda a resolver este problema
Descubre como el patrón Facade nos ayuda a resolver este problema

¿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.

🎉 Este video es parte del curso de patrones de diseño, inscríbete aquí 🎉

Acerca de este libro

Introducción a los patrones de diseño

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 libro
Todos los derechos reservados ©
Reactive programming
LinkedinYoutubeTwitterFacebook

© 2021, Copyright - Oscar Blancarte. All rights reserved.