Паттерн Состояние(State) - управляет изменением поведения объекта при изменении его внутреннего состояния. Внешне это выглядит так, словно объект меняет свой класс.
Пояснение:
Есть четыре возможных состояния автомата по продаже жвачки - "нет монеткаи"(NoQuarterState),"есть монетка"(HasQuarterState), "нет шариков"(SoldOutState),"шарик продан"(SoldState). В классе GumballMachine есть переменные экземпляра для хранения текущего состояния. Все действия которые могут быть реализованы в системе находятся в интерфейсе State. State наследуется всеми классами которые реализуют состояни.
