Bridge
Última actualización
¿Te fue útil?
Última actualización
¿Te fue útil?
Según el libro "Patrones de Diseño" el patrón Bridge "desacopla una abstracción de su implementación, de modo que ambas puedan variar de forma independiente".
Handle/Body (Manejador/Cuerpo)
Abstraccion:
define la interfaz de la abstracción.
mantiene una referencia a una variable de tipo Implementador.
AbstraccionRefinada:
extiende la interfaz definida por Abstraccion.
Implementador:
define la interfaz de los tipos de datos de implementación. Esta interfaz no tiene por qué corresponderse exactamente con la de Abstracción; de hecho, ambas interfaces pueden ser muy distintas. Normalmente la interfaz Implementador solo proporciona operaciones primitivas, y Abstraccion define operaciones de más alto nivel basadas en dichas primitivas.
ImplementadorConcreto:
implementa la interfaz Implementador y define su implementación concreta.
No se observan impedimentos para su implementación en Go.
En este caso, dado que Abstraccion se define como una interface pero a la vez también implementando comportamiento concreto para mantener la referencia del tipo de dato Implementador, se separará en dos partes en dos partes: a) por un lado los comportamientos abstractos deben definirse en una interface Abstraccion Interface, y b) por otro lado los comportamientos concretos (el que mantiene una referencia del Implementador) dentro de un tipo de dato Abstraccion Abstracta.
Las Abstracciones Refinadas se componen (en vez de heredar) de Abstraccion Abstracta.
En este ejemplo queremos desacoplar el protocolo de conexión a internet que pueden implementar distintos dispositivos.
Implementación:
Se puede probar la implementación del patrón de la siguiente forma:
|
Atención: Esta publicación se encuentra abandonada. Puede acceder a la versión vigente en