Bridge

Patrón de diseño estructural

Bridge es un patrón de diseño utilizado para desacoplar una abstracción de su implementación de manera que las dos puedan ser modificadas por separado sin necesidad de modificar la otra; dicho de otra manera, se desacopla una abstracción de su implementación para que puedan variar independientemente.

Bridge es muy utilizado cuando dos piezas de software están relacionadas directamente, sin embargo, existe una gran probabilidad de que una de las dos partes cambie y esto puede llevar a la necesidad de modificar la pieza del otro lado. Para solucionar este problema Bridge propone crear una estructura de clases basada en la agregación, en la cual, una clase puente es utilizada para desacoplar la clase que queremos utilizar y el cliente, de tal forma que este último no conozca la clase destino, permitiendo que cualquier parte pueda cambiar sin afectar a la otra.

Estructura del patrón Bridge
Estructura del patrón Bridge

Los componentes se explican a continuación:

  • Abstraction: Interface que define la estructura de la clase adaptadora o bridge.
  • AbstractionImpl: Clase utilizada como puente para desacoplar a Abstraction de Implementor, la clase hereda de Abstraction.
  • Implementor: Define una estructura de clase común para todas los ConcreteImplementor. Esta interface no es estrictamente requerida para implementar el patrón.
  • ConcreteImplementor: Conjunto de clases que heredan de Implementor y que son propensas a cambiar, es por esta razón que se opta por implementar el patrón de diseño Bridge.
Forma en la que trabaja el patrón Bridge
Forma en la que trabaja el patrón Bridge
  1. El cliente ejecuta una operación de AbstraccionImpl.
  2. AbstraccionImpl replica la petición a ConcreteImplementor, en este paso el AbstraccionImpl pudiera realizar una conversión de los parámetros para ejecutar al ConcreteImplementor.
  3. ConcreteImplementor regresa los resultados al AbstraccionImpl.
  4. El AbstraccionImpl convierte los resultados del ConcreteImplementor para ser devueltos al cliente.

Ejemplo del mundo real

Mediante la implementación del patrón de diseño Bridge crearemos una aplicación que permite comunicarnos con un sistema externo, dicha comunicación deberá ser encriptada mediante diversos algoritmos, sin embargo, la implementación concreta del algoritmo de encriptación puede cambiar y es necesario crear un adaptador que nos permita desacoplar la implementación concreta con la forma de utilizarlo, por lo cual, utilizaremos un adaptador que encapsule la lógica y nos exponga una interface común entre todos los métodos de encriptamiento.

Descubre como el patrón Bridge nos ayuda a resolver este problema
Descubre como el patrón Bridge 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.