State pattern

The state pattern

A monolithic object's behavior is a function of its state

State changes at runtime

Message changes the state of the object