The state design pattern allows an object to change its behavior based on internal state changes. The effect is that the object may seem to change its class. We will use the use case of a print job queue to demonstrate the state design pattern.
We will look at an example use case, the UML class diagram, and the source code necessary to implement the state design pattern for this scenario.