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
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.
- Sustituye el dominio del ejemplo conservando la estructura del patrón.
- Compara el patrón con una implementación más sencilla y explica las ventajas y desventajas.
- Escribe pruebas para cada participante antes de añadir otra implementación.