Patrones de diseño en Python

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

Ejecutar código →
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.

  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 →