Patrones de diseño en Python

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

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

  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 →