Паттерн State, особенности его применения
Есть некий патерн State. Суть моего интереса заключается в применении сего патерна в неком игровом проекте, а именно меня интересует как "лучше" организовать смену состояний?
Добавим не много конкретики, во вложениях наброски диаграммы состояний и иерархии классов.
Я вижу два подхода, а именно дабы состояния отвечали за смену состояний(сорри, тавтология, но как то ни чего на ум не идет) или же введение некоторого класса, который бы имел табличку переходов и организовывал смену. Оба варианта мне не нравятся. В первом случае состояния должны знать о других состояних, то есть сильно много связей и зависимостей. Во втором случае состояния должны информировать класс отвечающий за смену о своем текущем статусе, что тоже как то мне не нравится, бо пахнет энумами и свичами.
От вас жду обсуждения по сабжу и предложений возможно более изящных вариантов.