En el libro Design Patterns by GoF (Eric Gamma y otros), se menciona el patrón de adaptador bidireccional que se utiliza para la transparencia. Son útiles cuando 2 clientes diferentes quieren ver el mismo objeto de manera diferente. ¿Podría alguien dar un ejemplo de C++ para el mismo y en qué escenarios prácticos se puede utilizar?Qué es un patrón de adaptador bidireccional
Respuesta
Como explica Go4 (página 143 para mí), es una extensión de Adapter to multiple inheritance. En lugar de extender un tipo de interfaz, la clase de adaptador se extiende dos.
Me parece que la explicación dada here es bastante buena. Es un ejemplo de C# pero la explicación es clara y el ejemplo se puede traducir bastante fácilmente al código de C++. El ejemplo también es bastante detallado.
Muy bien, la única diferencia entre un adaptador de dos vías y un adaptador de clase clásico es: 1) se puede acceder al adaptador de clase clásico a través de la interfaz Itarget/cliente sola 2) se puede acceder al adaptador de dos vías a través del Itarget/interfaz de clase, así como la interfaz adaptada – Priyanka
Los adaptadores bidireccionales son adaptadores que implementan ambas interfaces de Target y Adaptee. El objeto adaptado se puede usar como Destino en nuevos sistemas que tratan con clases de Destino o como Adaptado en otros sistemas que tratan con clases de Adaptado. Yendo más lejos en esta línea de pensamiento, podemos tener adaptadores que implementen n interfaces, adaptándose a n sistemas. Los adaptadores bidireccionales y los adaptadores n-way son difíciles de implementar en sistemas que no admiten herencia múltiple. Si el adaptador tiene que extender la clase Target, no puede ampliar otra clase como Adaptee, por lo que el Adaptee debería ser una interfaz y todas las llamadas deberían delegarse desde el adaptador al objeto Adaptee.
- 1. ¿Por qué MouseAdapter es un adaptador?
- 2. ¿Es esto realmente un ejemplo del patrón de adaptador?
- 3. ¿Cuándo necesitamos un patrón de adaptador?
- 4. ¿Qué nombre de clase debo usar para un Adaptador de patrón de adaptador?
- 5. Descripción del patrón de adaptador
- 6. Implementación del patrón de adaptador
- 7. Diferencia entre patrón de adaptador de objeto y patrón de adaptador de clase
- 8. Diferencia entre patrón de puente y patrón de adaptador
- 9. Patrón de adaptador: adaptador de clase frente a adaptador de objeto
- 10. ¿Diferencias entre el patrón Proxy y el patrón del Adaptador?
- 11. ¿Qué es este patrón?
- 12. Patrón ECB: ¿qué es realmente un límite?
- 13. ¿Qué es un patrón anidado en Haskell?
- 14. Mejor patrón de diseño a utilizar: adaptador o fachada
- 15. ¿Qué es el adaptador de controlador en mvc de primavera?
- 16. ¿Qué es el "patrón compuesto"?
- 17. "Adaptador" o "adaptador"?
- 18. ¿Cuál es la diferencia entre un adaptador de canal y un patrón de puerta de enlace de mensajería?
- 19. ¿Qué es un patrón de diseño de fábrica en PHP?
- 20. ¿Qué patrón de diseño es este?
- 21. ¿Qué es el patrón de diseño "Dispatcher"?
- 22. ¿Por qué no es un patrón de ancho fijo?
- 23. ¿Qué es el patrón de diseño fantasma?
- 24. ¿Cuál es el mejor patrón para la comunicación bidireccional entre clases?
- 25. ¿Es este un patrón de diseño común? "Patrón de descriptor"?
- 26. ¿Por qué .NET no tiene un enumerador bidireccional?
- 27. ¿Qué es mejor patrón objeto Javascript
- 28. ¿Es este un patrón de diseño?
- 29. ¿Qué es codificación suave? (Anti-patrón)
- 30. ¿Qué adaptador usar - BaseAdapter o ArrayAdapter?
¿Es esta tarea? –
:) no no .. No es una tarea, me estoy preparando para una entrevista y aunque entiendo el patrón del adaptador, no entendí el uso del adaptador bidireccional. Mencioné C++ porque los ejemplos en este libro están en Smalltalk de los que no estoy enterado. – Priyanka
Pero los ejemplos en el libro están todos en C++ o Smalltalk. ¿Por qué no solo mira el código dado por GoF? ¿O fue uno dado en Smalltalk? Lo siento, no tengo mi texto aquí para verificar. – duffymo