Los patrones de diseño esta divididos en tres categorías: creación, estructural y de comportamiento.
El patrón bridge pertenece a la categoría de patrones estructurales. Con este patrón podremos desacoplar abstracción e implementación de manera que las dos puedan evolucionar de manera independiente
ESCENARIO
Volveremos a usar monitores/televisiones para ilustrar este ejemplo. Imaginaros que tenemos una fabrica de televisiones y cada una imprime un tipo diferente de panel de control.
En este caso, tendríamos la clase abstracta Televisión, con el panel de control dentro de la misma abstracción. Sí tenemos dos tipos de panel de control: básico y avanzado y por otro lado tenemos las televisiones LG, Sony, Samsung, Philips. Tendríamos que generar 8 implementaciones para todos las marcas.
Este diseño sería difícil de mantener a más que generaría bastantes problemas.
CUANDO USARLO
Cuando detectamos este tipo de problemas de evolución independiente de implementación y abstracción.
Cuando veamos qué se generan demasiadas implementaciones para cubrir, la union de todos los casos: En el ejemplo anterior seria LGPanelBásicoImpl, LGPanelAvanzadoImpl, etc.
ESTRUCTURA
ACTORES
- Abstracción (televisión): La abstracción contiene una referencia a la implementación (control panel)
- Abstracción Concreta: Extiende la abstracción o implementa
- Implementación: Define la interfaz que sera usada en la abstracción
- Implementación Concreta: Implementa la interfaz
VENTAJAS E INCONVENIENTES
No sabría encontrarle inconvenientes, si alguien tiene alguno, contactar conmigo.
Por otro lado, como ventaja, reducir las implementaciones necesarias y desacoplar siempre esta bien
IMPLEMENTACIÓN