Паттерн "Состояние" (State) является поведенческим паттерном проектирования, который позволяет объекту изменять своё поведение во времени, сохраняя при этом его интерфейс неизменным. Паттерн "Состояние" позволяет объекту переключаться между множеством состояний, каждое из которых определяет поведение объекта. Описание Паттерн "Состояние" используется, когда поведение объекта зависит от его внутреннего состояния. Вместо того чтобы поместить всю логику состояния внутрь объекта, мы отделяем её в отдельные классы, называем их "состояниями". Эти состояния могут быть переключены во время выполнения программы, что позволяет объекту динамически менять своё поведение. Структура Паттерн "Состояние" состоит из следующих компонентов: Пример В данном примере рассмотрим работу паттерна на основе работы светофора. Создадим абстрактный класс State. А так же конкретный класс светофора TrafficLight. Создадим классы конкретных состояний. Расмотрим применение.