State

Patrón de diseño de comportamiento

El patrón de diseño State se caracteriza por modificar su comportamiento dependiendo del estado en el que se encuentra la aplicación. Para lograr esto es necesario crear una serie de clases que representarán los distintos estados por los que puede pasar la aplicación; es decir, se requiere de una clase por cada estado por el que la aplicación pueda pasar.

Estructura del patrón de diseño State
Estructura del patrón de diseño State.

A continuación se explican los componentes que conforman el patrón de diseño State:

  • Context: Representa el componente que puede cambiar de estado, el cual tiene entre sus propiedades el estado actual. En el ejemplo de la máquina de refrescos, éste sería la máquina como tal.
  • AbstractState: Clase base para la generación de los distintos estados. Se recomienda que sea una clase abstracta en lugar de una interface debido a que podemos definir comportamientos por default y así afectar el funcionamiento de todos los estados.
  • ConcreteState: Cada uno de estos componentes representa un posible estado por el cual la aplicación puede pasar, por lo que tendremos un ConcreteState por cada estado posible. Esta clase debe de heredar de AbstractState.
Diagrama de secuencia del patrón de diseño State
Diagrama de secuencia del patrón de diseño State.
  1. Se establece un estado por default al Context, el cual es StateA.
  2. Se ejecuta la operación request sobre el Context, la cual delega la ejecución al estado actual (StateA).
  3. El Context cambia del estado A al estado B.
  4. Se ejecuta nuevamente la operación request sobre el Context que delega la ejecución al estado actual (StateB).
  5. La ejecución del StateB da como resultado un cambio de estado al StateC.
  6. Se ejecuta nuevamente la operación request sobre el Context que delega la ejecución al estado actual (StateC).

Ejemplo del mundo real

Mediante la implementación del patrón de diseño State crearemos nuestro propio servidor, el cual será controlado mediante una serie de estados. Los estados le indicarán al servidor como comportarse ante los diversos eventos, ya que un mismo evento puede tener un resultado diferente según el estado actual del servidor.

Descubre como el patrón State nos ayuda a resolver este problema
Descubre como el patrón State nos ayuda a resolver este problema.

¿Sabes la importancia de los patrones de diseño?

Los patrones de diseño son la clave para crecer profesionalmente hacia la arquitectura de software, sin mencionar que los salarios son los más altos de la industria de IT, descúbrelo en este video.

🎉 Este video es parte del curso de patrones de diseño, inscríbete aquí 🎉

Acerca de este libro

Introducción a los patrones de diseño

Todo lo que acabas de ver en este artículo es solo una pequeña parte del libro Introducción a los patrones de diseño, el libro más completo de patrones de diseño en español, abarcamos 25 patrones de diseño junto con 25 proyectos del mundo real. Olvídate de aprender patrones de diseño con los ejemplos típicos de Internet de cómo hacer una pizza, animales y figuras geométricas. te invito a que veas mi libro:

Ver libro
Todos los derechos reservados ©
Reactive programming
LinkedinYoutubeTwitterFacebook

© 2021, Copyright - Oscar Blancarte. All rights reserved.