Command Pattern in Python
Aprende Command Pattern in Python con un ejemplo práctico que puedes editar y ejecutar online.
¿Qué es Command Pattern?
Aprende Command 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 Light:
# Command: package a request as an object for later execution.
def on(self): return "Light on"
def off(self): return "Light off"
class LightCommand:
def __init__(self, light, action):
self.light, self.action = light, action
def execute(self):
# Store a request as data that can be invoked later.
return getattr(self.light, self.action)()
light = Light()
for command in [LightCommand(light, "on"), LightCommand(light, "off")]:
print(command.execute())
Resultado esperado
Light on
Light off
Cómo funciona
Este ejemplo muestra Command 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.