Breaking down the State pattern
As part of the behavioral family of design patterns, the State pattern allows an object to change its internal behavior based on an internally tracked state. The internal state can be switched to any other concrete state
object, which are self-contained classes that implement a common set of rules and customized logic. This means the State pattern is most useful when:
- You want an object’s behavior to change (either at runtime or at every frame) based on an internal state.
- You want to refactor an object’s long conditional statements into separate classes so it can be treated independently.
- You want to add new behavior to an object without changing or breaking existing code.
Going back to the analogy a few pages ago, think of yourself as a state machine. You (as a person) have specific needs that change and depend on various internal and external factors. If you’re hungry, you eat; if you’re...