State Pattern in Python
Aprende State Pattern in Python con un ejemplo práctico que puedes editar y ejecutar online.
¿Qué es State Pattern?
Aprende State 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 Playing:
# State: delegate behavior to the current state object.
def action(self): return "Playing"
class Paused:
def action(self): return "Paused"
class Player:
def __init__(self): self.state = Paused()
def set_state(self, state): self.state = state
def action(self):
# Behavior comes from the current state object.
return self.state.action()
player = Player()
player.set_state(Playing())
print(player.action())
player.set_state(Paused())
print(player.action())
Resultado esperado
Playing
Paused
Cómo funciona
Este ejemplo muestra State 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.