fui interrogado por un colega sobre el patrón de diseño de mi implementación de un servicio WCF ventanas en una aplicación cliente ASP.net y realmente no podría decir si es Puente o adaptador !Puente vs. adaptador de patrones de diseño
Aquí es la implementación:
- he obtenido el contrato de servicio
- definido una nueva interfaz similar a mi contrato de datos de WCF
- creé un cliente WCF y lo envolvió dentro de la nueva interfaz
- mapean las nuevas operaciones de interfaz con el cliente WCF originales (hago un poco de registro/manejo de error aquí)
Siempre estuve pensando en ello como una implementación de Adaptador patrón, pero realmente no puedo decir por qué no es Puente!
He leído todas las publicaciones aquí en SO, GoF y wikipedia, ¡pero realmente no tiene sentido!
Desde mi entender, Ambos patrones de puntos en un tipo existente, tanto desacoplar una abstracción de su implementación me estoy perdiendo un punto?
Aquí es de GoF:
La diferencia clave entre estos patrones radica en sus intenciones. El adaptador se enfoca en resolver incompatibilidades entre dos interfaces existentes. No se centra en cómo se implementan esas interfaces, , ni considera cómo podrían evolucionar de forma independiente. Es una manera de hacer que dos clases diseñadas independientemente funcionen juntas sin volver a implementar una u otra. Bridge, por otro lado, une una abstracción y sus (potencialmente numerosas) implementaciones. Es proporciona una interfaz estable para los clientes, incluso si le permite variar las clases que lo implementan. También acomoda nuevas implementaciones como , el sistema evoluciona.
No entiendo plenamente la declaración anterior,
- ¿Quiere decir que si varío el adaptado o cambiar la aplicación de la interfaz original en tiempo de diseño, entonces es Patrón Puente ?
- Las diferencias suenan triviales, ¿Hay alguna otra diferencia en la implementación/abstcation de ?
- ¿Cómo puede alguien decir qué implementación se usa después de desarrollo?
- ¿Alguien me puede dar un buen ejemplo de patrón de puente y cómo puede cambiarse durante el ciclo de vida del software?
Actualización:
nuevo desde GoF:
Recuerde que un adaptador hace dos interfaces existentes trabajan juntos en contraposición a la definición de uno completamente nuevo.
¿Quiere decir que el cambio de la interfaz existente para que pueda trabajar con otra interfaz es una implementación del adaptador ?
Update2:
Sólo encontraron esta increíble artículo: Illustrated GOF Design Patterns in C#
Este es verdadera estructura del golpeteo del puente:
me faltaba el hecho de que el patrón de puente le permite combinar las diferentes abstracciones e implementaciones y ampliar ellos de forma independiente
Sí, usted está justo al lado de la parte decoradora, sin embargo, por definición parece que este es el patrón Bridge, ya que el contrato de servicio WCF es ¡evolucionando durante el ciclo de vida del software! –
Puente utilizado para conectar dos jerarquías de clase. No veo ninguna jerarquía aquí. –