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 libroState
Patrón de diseño de comportamientoEl 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.
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.
- Se establece un estado por default al Context, el cual es StateA.
- Se ejecuta la operación request sobre el Context, la cual delega la ejecución al estado actual (StateA).
- El Context cambia del estado A al estado B.
- Se ejecuta nuevamente la operación request sobre el Context que delega la ejecución al estado actual (StateB).
- La ejecución del StateB da como resultado un cambio de estado al StateC.
- 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.
¿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.