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