The State design pattern allows an object to dramatically change its behavior that depends on the state of this object. It replaces complex branching inside the object and separates the behavior of concrete states into separate classes. It's very similar to the Strategy design pattern where, on the contrary, it's the client who chooses the specific strategy (the behavior given by the object instance).
If we perform an algorithm that reacts strongly to the internal state of the
object, we usually have to perform a complex branching of the state inside its
methods using the
switch construct or the
if ... else if ... sequence. Imagine, for example, that we program
the ghost AI in the Pacman game. They usually change their behavior to chase
Pacman. After a while, they just move randomly in a maze, and if the ghost is
blue (the player picked a power-up), they even run away from Pacman. The ghost
will have, for example,
...End of the preview...
You've come here and that's great! We believe that the first lessons showed you something new and useful
Do you want to continue the course? Go to the premium section.
Limited offer: Learn all knowledge and save money
- Unlimited and permanent access to individual lessons.
- High quality IT knowledge.
- Skills to help you get your dream and well-paid job.
Requested article covers this content:
The State design pattern allows an object to dramatically change its behavior, which depends on the object's state. Replaces complex branching.
You gain credits by supporting our network. This is done by sending a helpful amount of money to support the site, or by creating content for the network.