Patrón State

Lectura de ~2 minutos

Permite a un objeto alterar su comportamiento cuando su estado interno cambia.

Aplicabilidad

  • El comportamiento de un objeto depende de su estado, y debe modificar dicho comportamiento dependiendo del estado.

  • Las operaciones tienen condicionales largos y múltiples, que dependen del estado del objeto. Dicho estado es representado por uno o más enumerados constantes.

Estructura

State Diagram

Se define una clase abstracta que define la interfaz de los estados. Cada clase hija redefinirá el comportamiento. Cada clase hija representa un estado distinto.

Consecuencias

  • Localiza el estado y su comportamiento, haciendo sencillo añadir nuevos estados.

  • Los cambios de estado son explícitos.

  • Si el estado no tiene variables de instancia se puede compartir el objeto estado. Cuando esto ocurre también son Flyweight.

Aquí un pequeño ejemplo en Net Core.

Nos vemos en las próximas líneas.

Escrito el 08/01/2019