Состояние

описание
Состояние — поведенческий шаблон проектирования. Используется в тех случаях, когда во время выполнения программы объект должен менять своё поведение в зависимости от своего состояния.

Шаблон позволяет менять поведение класса при изменении состояния.