You can apply the state machine design pattern to a wide variety of programming tasks.
The following tasks are examples of situations for which state machines are well suited:
However, a state machine is not well suited for every programming situation. If your program needs to run parallel processes, you may want to choose a different design pattern.