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