Цитата:
Сообщение от Rzer
Всё равно тебе придётся узнать в каком режиме находится стейт.
|
Вовсе нет. Как отметил
СлаваRa, суть самого паттерна "Состояние" в том и состоит, что проверять ничего не нужно. Ты просто записываешь в переменную _state того или иного наследника базового класса (или интерфейса) состояния и переопределяешь в нём методы. Получается, что вместо doSomething(), ты запускаешь _state.doSometing(). По факту запустится метод из актуального на данный момент состояния.
Цитата:
|
Но я не вижу принципиально разницы, если все твои последующие стейты ты будешь наследовать от ChStateNormal или ChStateBattle
|
Пока ничего не придумал лучше, чем создать 4 варианта наследников: ChStateBattlePlayer, chStateBattleNPC и аналогично для "обычного" состояния.