State Machine Workshop
Goals to demonstrate and discuss the potential use of state machines to manipulate view state and various aspects of flow control
1: What is a state machine? 2: How do they work? 3: What can I use it for?
What is a state machine?
A state machine is a term given to a software pattern borrowed from the electronics industry. In laymans' terms, it takes a list of "states" and exposes methods to move the machine between those states. The classic example is a door. It has two states - "open" and "closed". Let's add another, "locked". The door, in principle, can transition like this:
- "open" to "closed",
- "closed" to "open",
- "closed" to "locked",
- "locked" to "closed",
BUT the door is not allowed to go from "open" to "locked". A state machine, then, is a means of representing a system in terms of it's states, and presents a means of enforcing this logic.
How do they work?
Summary State machines can be used for a variety of tasks:
- controlling view state
- controlling control availability
- managing network interactions