Alter an object's behavior when its state changes

State Design Pattern