Skip to content
Joel Alvarez edited this page Jul 11, 2026 · 1 revision

State

State modela objetos cuyo comportamiento cambia según su estado actual.

Idea central

El contexto conserva un estado. Cada operación valida si la transición tiene sentido y mueve el contexto al siguiente estado, o rechaza el intento con un error claro.

En Rust suele aparecer como:

  • Enums para representar estados cerrados.
  • Métodos que devuelven Result para transiciones inválidas.
  • Tipos separados cuando se quiere reforzar el flujo en compilación.

Ejemplos del repositorio

  • Flujo de orden pendiente, pagada, enviada y cancelada: src/patterns/gof/behavioral/state/order_flow.rs
  • Máquina de estados de autenticación: src/patterns/gof/behavioral/state/auth_machine.rs
  • Ciclo de vida de ticket de soporte: src/patterns/gof/behavioral/state/support_ticket.rs

Guía técnica

La guía cercana al código vive en:

patterns/gof/behavioral/state/README.md

Clone this wiki locally