chapter thirteen

13 The State Design Pattern

 

This chapter covers

  • The State Design Pattern

In chapter 12, we saw how the Observer Design Pattern provides a model for an application in which the subject object (the publisher) plays a key role in the operation of the application by providing 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, which depends on its current state, is critical to the operation of the application.

As we saw in section 4.4, events that change the values of the object’s instance 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.

13.1 The State Design Pattern models state transitions

13.1.1 Desired design features

13.1.2 Before using State

13.1.3 After using State

13.1.4 State’s generic model

13.2 Choosing between State and Visitor

Summary