Patrón de Diseño Adapter
(Fuente: javatutoriales.com)
En el mundo de la programación, a menudo nos encontramos con la necesidad de hacer que dos clases incompatibles trabajen juntas. Por ejemplo, podemos tener una clase que funciona con corriente alterna (CA) y queremos conectarla a una toma de corriente doméstica que proporciona corriente continua (CC). O podemos tener una aplicación que necesita utilizar una API de terceros que tiene una interfaz incompatible con nuestra aplicación.
En estos casos, podemos utilizar el patrón de diseño Adapter. El patrón de diseño Adapter es un patrón estructural que permite a dos clases con interfaces incompatibles trabajar juntas. El adaptador proporciona una capa de abstracción entre las dos clases, lo que permite que la clase cliente utilice la clase adaptada sin conocer su interfaz real.
Estructura del Patrón Adapter
El patrón Adapter involucra a cuatro participantes:
- Target: Define la interfaz específica del dominio que el cliente usa.
- Client: Colabora con objetos conformes a la interfaz Target.
- Adaptee: Define una interfaz existente que necesita adaptarse.
- Adapter: Adapta la interfaz de Adaptee a la interfaz Target.
¿Cómo funciona el patrón de diseño Adapter?
El patrón de diseño Adapter se puede implementar de varias maneras, pero la forma más común es mediante una clase adaptadora. La clase adaptadora implementa la interfaz de la clase cliente y delega las llamadas a los métodos de la clase adaptada.
Por ejemplo, si tenemos una clase ACDevice que funciona con corriente alterna, y queremos conectarla a una toma de corriente doméstica que proporciona corriente continua, podemos crear una clase Adapter que implemente la interfaz DCDevice. La clase Adapter tendrá un atributo de tipo ACDevice y delegará las llamadas a los métodos de DCDevice al objeto ACDevice.
En este ejemplo, la clase Adapter implementa los métodos turn_on() y turn_off() de la interfaz DCDevice. Las llamadas a estos métodos se delegan al objeto ac_device.
Ventajas del patrón de diseño Adapter
El patrón de diseño Adapter tiene varias ventajas, entre ellas:
- Permite que dos clases con interfaces incompatibles trabajen juntas.
- Mantiene la integridad de las interfaces de las clases originales.
- Es fácil de implementar y de usar.
- Desventajas del patrón de diseño Adapter
El patrón de diseño Adapter también tiene algunas desventajas, entre ellas:
- Puede añadir complejidad al código.
- Puede reducir el rendimiento, ya que el adaptador debe convertir las llamadas entre las dos interfaces.
¿Cuándo utilizar el patrón de diseño Adapter?
El patrón de diseño Adapter se puede utilizar en una amplia gama de situaciones, como:
- Adaptar una biblioteca de código existente para que funcione con una nueva aplicación.
- Adaptar una API de terceros para que funcione con su propia aplicación.
- Adaptar un dispositivo electrónico para que funcione con un nuevo estándar.
Conclusión
El patrón de diseño Adapter es una herramienta poderosa en el arsenal de un desarrollador de software. Al permitir que las clases con interfaces incompatibles trabajen juntas, el patrón Adapter proporciona una gran flexibilidad y evita la necesidad de modificar las clases existentes para cumplir con nuevas necesidades.
Referencias
- Adapter. (s. f.). https://reactiveprogramming.io/blog/es/patrones-de-diseno/adapter
- Adapter. (s. f.-b). https://refactoring.guru/es/design-patterns/adapter
- Leiva, A. (2023, 27 junio). Adapter – patrones de diseño. DevExpert. https://devexpert.io/adapter-patrones-diseno/
Comentarios
Publicar un comentario