State

Allow an object to alter its behavior when its internal state changes. The object will appear to change its class.

Applicability

Consequences