У меня возникли некоторые проблемы с тем, чтобы обернуть голову вокруг одного из аспектов государственной картины. Я понимаю основные примеры, представленные в Википедии и т. Д., Но что, если я в вашем StateContext
классе вносим изменения условного состояния, скажем, в таймер, свойственный каждому состоянию?
Так, например, скажем, что наши состояния A
, B
, C
и D
. И я хочу изменить состояния на основе таймера состояния. Например, оставайтесь в A в течение 5 секунд, B в течение 7 секунд, C в течение 3 секунд и D в течение 10 секунд.
Кто должен управлять этой продолжительностью? Должен ли каждый штат знать о его продолжительности? В этом случае я чувствую, что мне не нравится копировать и вставлять атрибут _duration
в каждое состояние и думаю, что мой интерфейс State
должен быть абстрактным базовым классом с этим атрибутом.
Или StateContext
должен управлять продолжительностью? В этом случае я чувствую себя неприлично, делая IsInstanceOf
проверки моего _state
.