Вопросы к Поиску с Алисой
Разница между паттернами State и State Machine заключается в методе определения следующего состояния при осуществлении перехода. is.ifmo.ru www.softcraft.ru
Паттерн State позволяет объекту изменять своё поведение в зависимости от внутреннего состояния. habr.com vc.ru Логика переходов распределена по классам состояний, что порождает зависимости между классами и сложность восприятия логики переходов в целом. is.ifmo.ru www.softcraft.ru В этом паттерне следующее состояние указывается текущим состоянием. is.ifmo.ru
Паттерн State Machine предназначен для создания объектов, поведение которых варьируется в зависимости от состояния. is.ifmo.ru Логика переходов отделена от реализации поведения в конкретных состояниях. is.ifmo.ru Классы состояний обязаны только уведомить контекст о наступлении события. is.ifmo.ru После этого, в зависимости от события и текущего состояния, контекст устанавливает следующее состояние в соответствии с графом переходов. is.ifmo.ru www.softcraft.ru
Таким образом, паттерн State подходит для сценариев, где переходы между состояниями несложны и управляются самим объектом, а State Machine — для ситуаций, когда логика переходов становится явной и централизованной, есть чётко определённые события, вызывающие переходы. habr.com