Patrones de diseño en Python

Adapter Pattern in Python

Aprende Adapter Pattern in Python con un ejemplo práctico que puedes editar y ejecutar online.

¿Qué es Adapter Pattern?

Aprende Adapter Pattern in Python con un ejemplo práctico que puedes editar y ejecutar online.

¿Cuándo se utiliza?

  • Resolver problemas recurrentes de diseño de objetos con estructuras probadas.
  • Desacoplar responsabilidades para facilitar la extensión y las pruebas del código.
  • Usar un vocabulario de diseño común al hablar de arquitectura con el equipo.

Código de ejemplo

Ejecutar código →
main.py
class LegacyGateway:
    # Adapter: wrap an incompatible API with the expected interface.
    def make_payment(self, cents):
        return f"PAY {cents / 100:.2f}"


class PaymentAdapter:
    def __init__(self, gateway):
        self.gateway = gateway

    def pay(self, dollars):
        # Translate both the method name and amount format.
        return self.gateway.make_payment(round(dollars * 100))


gateway = PaymentAdapter(LegacyGateway())
print(gateway.pay(25))

Resultado esperado

PAY 25.00

Cómo funciona

Este ejemplo muestra Adapter Pattern in Python. Cambia los valores de entrada para explorar el código.

Cambia los valores y ejecuta el programa en el compilador Python online de CodeUtility sin instalar Python.

Ejercicios prácticos

Modifica las entradas y prueba casos límite antes de usar conjuntos de datos mayores.

  1. Sustituye el dominio del ejemplo conservando la estructura del patrón.
  2. Compara el patrón con una implementación más sencilla y explica las ventajas y desventajas.
  3. Escribe pruebas para cada participante antes de añadir otra implementación.
Ejecutar en el IDE de Python →