Patrón Adapter

PUBLICADO: 2026-07-21
AUTOR: MANUEL PRIETO
Patrones de Diseño

Adapter (Adaptador o Wrapper) es un patrón de diseño estructural que permite la colaboración entre objetos que de otro modo serían incompatibles debido a diferencias en sus interfaces.

💡 Ver Caso Práctico: Ejemplo Práctico del Patrón Adapter

Propósito y Caso de Uso

Utiliza el patrón Adapter cuando quieras utilizar una clase existente o una librería de terceros cuya interfaz no coincida con el resto del código de tu aplicación. Es ideal para mantener el principio de Abierto/Cerrado (SOLIDGlosarioSOLIDAcrónimo de cinco principios de diseño orientado a objetos y programación diseñados para hacer que el software sea más comprensible, flexible y mantenible: S - Single Responsibility Principle (Responsabilidad Única) O - Open/Closed Principle (Abierto/Cerrado) L - Liskov Substitution Principle (Sustitución de Liskov) I - Interface Segregation Principle (Segregación de Interfaz) D - Dependency Inversion Principle (Inversión de Dependencias) Ver término completo →) y evitar el código duplicado (DRYGlosarioDRY (Don't Repeat Yourself)Principio fundamental de diseño de software formulado por Andy Hunt y Dave Thomas. Establece que toda pieza de conocimiento o lógica debe tener una representación única, no ambigua y definitiva en el sistema para evitar duplicidad y facilitar el mantenimiento.Ver término completo →).

A diferencia del Patrón Decorator (que añade nuevas responsabilidades), el Adapter únicamente traduce la interfaz de un objeto para adaptarla a las necesidades del cliente.

Estructura del Patrón

  1. Cliente: Contiene la lógica de negocio existente de la aplicación.
  2. Interfaz Cliente (Target): Declara el protocolo que las demás clases deben seguir para colaborar con el cliente.
  3. Servicio Adaptado (Adaptee): Clase o servicio de terceros incompatible que se desea utilizar.
  4. Adaptador (Adapter): Clase envoltorio que implementa la interfaz cliente y traduce las llamadas hacia el servicio adaptado.
Cargando diagrama...

Flujo de Funcionamiento

  1. Invocación: El cliente llama a un método de la interfaz objetivo a través del objeto Adaptador.
  2. Traducción: El Adaptador convierte los parámetros recibidos al formato que espera la librería de terceros.
  3. Ejecución: El Adaptador delega la llamada real al objeto adaptado (Adaptee) y retorna la respuesta procesada al cliente.

Ejemplos de Implementación Reales