Adapter – Patrones de Diseño
Antonio Leiva

El patrón de diseño Adapter es una técnica muy utilizada en el desarrollo de software para adaptar una interfaz de una clase a otra interfaz que se espera utilizar. Esto permite que las clases que no sean compatibles entre sí puedan trabajar juntas y ofrecer una funcionalidad similar.

Un ejemplo común de utilización de este patrón es cuando se desea utilizar una librería o una clase que no se ajusta completamente a nuestras necesidades y requerimientos. En lugar de reescribir completamente la clase o librería, podemos utilizar un Adapter para adaptar su interfaz a la que necesitamos.

En Kotlin, podemos utilizar el patrón Adapter mediante la implementación de una clase adaptadora que herede de la clase o librería que queremos adaptar y sobrescriba los métodos necesarios para adaptarlos a nuestras necesidades. A continuación, un ejemplo de cómo se podría implementar un Adapter en Kotlin:

// Clase original que queremos adaptar
class OriginalClass {
    fun originalMethod() {
        // Código de la función original
    }
}

// Adapter que sobrescribe la función original para adaptarla a nuestras necesidades
class Adapter : OriginalClass() {
    override fun originalMethod() {
        // Código adaptado de la función original
    }
}

Ejemplo concreto del patrón adapter

Un ejemplo concreto de utilización del patrón Adapter en Kotlin podría ser el siguiente:

Imaginémonos que tenemos una aplicación que utiliza una librería externa para gestionar la autenticación de usuarios. La librería ofrece una interfaz que permite iniciar sesión, cerrar sesión y obtener información del usuario autenticado. Sin embargo, la información que ofrece la librería no se ajusta exactamente a lo que necesitamos en nuestra aplicación, por lo que decidimos utilizar un Adapter para adaptar la interfaz de la librería a nuestras necesidades.

Para ello, creamos una clase AuthenticationAdapter que herede de la clase de la librería de autenticación y sobrescriba el método que nos devuelve la información del usuario autenticado. La clase AuthenticationAdapter podría quedar de la siguiente manera:

// Clase de la librería de autenticación
class AuthenticationLibrary {
    fun login() {
        // Código para iniciar sesión
    }

    fun logout() {
        // Código para cerrar sesión
    }

    fun getUserInformation(): String {
        // Devuelve un string con la información del usuario autenticado
    }
}

// Adapter que adapta la interfaz de la librería de autenticación a nuestras necesidades
class AuthenticationAdapter : AuthenticationLibrary() {
    override fun getUserInformation(): User {
        // Devuelve un objeto Usuario con la información del usuario autenticado
        val userInformation = super.getUserInformation()
        val data = userInformation.split(",")
        return User(data[0], data[1], data[2])
    }
}

De esta manera, podemos utilizar la clase AuthenticationAdapter en nuestra aplicación en lugar de la clase AuthenticationLibrary y aprovechar su funcionalidad, pero adaptada a nuestras necesidades.

Además, el código que utiliza la clase AuthenticationAdapter no necesita conocer los detalles de cómo se ha adaptado la función getUserInformation(), lo que permite una mayor reutilización del código.

En resumen, el patrón de diseño Adapter es una técnica muy útil en el desarrollo de software que permite adaptar una interfaz a otra que se espera utilizar, lo que facilita la interoperabilidad entre clases y librerías que no son compatibles entre sí.

En Kotlin, se puede implementar mediante la creación de una clase adaptadora que herede de la clase a adaptar y sobrescriba los métodos necesarios para adaptarlos a nuestras necesidades.

Quizá también te interese…

Las reglas FIRST de los tests

Las reglas FIRST de los tests

Las reglas FIRST son un conjunto de principios que se utilizan para diseñar y escribir tests de software de manera efectiva. Las siglas FIRST significan: F - Fast: Un test debe ser rápido de ejecutar. I - Independent: Un test debe ser independiente de otros tests y...

¿Qué son los dobles de test?

¿Qué son los dobles de test?

Los dobles de prueba (también conocidos como "doubles" o "fakes") son herramientas comunes en la programación y en particular en el testing de software. Se utilizan para simular el comportamiento de una dependencia de una aplicación en un entorno de pruebas, sin tener...

Kata del TicTacToe en Kotlin

Kata del TicTacToe en Kotlin

Escribe el código para representar una entidad que almacene el tablero de juego del 3 en raya, y que además tenga: Un método move() con 2 parámetros, fila y columna, que permita añadir un movimiento al tablero Un método findWinner(), que devuelva el ganador (X, Y o...

0 comentarios

Enviar un comentario

Los datos personales que proporciones a través de este formulario quedarán registrados en un fichero de DevExpert, S.L.U., con el fin de gestionar los comentarios que realizas en este blog. La legitimación se realiza a través del consentimiento de la parte interesada. Si no se acepta, no podrás comentar en este blog. Los datos que proporciona solo se utilizan para evitar el correo no deseado y no se usarán para nada más. Puede ejercer los derechos de acceso, rectificación, cancelación y oposición en contacto@devexperto.com.

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Acepto la política de privacidad *