A behavioral software design pattern, state pattern is used for computer programming to control the state in the program.

See also: Strategy pattern, Dynamic classification, Run and return successor, Duality between state and class