State

State Pattern: Allow an object to alter its behavior when its internal state changes. THe object will appear to change its class.

References

pg. 381 in Head First Design Patterns 2nd Ed.

Example code: head first design patterns state pattern