Chapter 12 showed how the Observer Design Pattern provides a model for an application where the subject object (the publisher) plays a key role in the operation of the application by supplying content data for the observer objects (the subscribers). In this chapter, an object also plays a key role. We must monitor the runtime state changes of this object because its behavior is critical to the operation of the application.
As we saw in section 4.5, events that change the values of the object’s member variables can cause an object to make a transition from one state to another. The object can behave differently according to its current state. The State Design Pattern provides a model for managing an object’s states, the state transitions, and the different behaviors in each state.

NOTE
Be sure to read the introduction to part 4 for important information about design patterns in general and to learn how this and subsequent chapters teach each pattern.