[Name] State [In Design Patterns] Yes [In Code Complete[15]] No [Other] N/A [Description] 
Allow an object to alter its behavior when its internal state changes. The object will appear to change its class.