Patrón Bridge

Lectura de ~2 minutos

Desacopla la abstracción de su implementación para que se puedan modificar de forma independiente.

Aplicabilidad

  • Se quiere evitar una vinculación permanente entre una implementación y su abstracción. Por ejemplo cuando la implementación se debe cambiar en tiempo de ejecución.
  • La abstracción y su implementación debe ser extensible por herencia.
  • Cambios en la implementación de una abstracción no debe tener impacto en los clientes.
  • Hay una ploriferación de clases hijas dependiendo de las implementaciones que se deben crear.

Estructura

UMLBridgePattern

Se define una clase abstracta que encapsula la llamada a la implementación, de modo que el cliente solamente realiza llamadas a dicha clase. Se define a su vez una interfaz para dicha imlementación, así se puede cambiar de una a otra sin afectar al cliente.

Consecuencias

  • Se pueden cambiar implementaciones en tiempo de ejecución.
  • Elimina dependencias en tiepo de compilación.
  • Se pueden extender las partes de la abstracción y de implementación de forma independiente.
  • Se proteje a los clientes de detalles de la implementación.

Como de costumbre aquí os dejo un enlace a un proyectito hecho en dotnet core de ejemplo.

Nos vemos en las próximas líneas.

Escrito el 25/02/2018