Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > State Machine


Автор: Shtrun 14.2.2010, 15:24
Доброго времени суток всем.

Есть задача создать не сложную Session State Machine.
Примерно такую как на прикрепленном файле.

В кружочках - State.
В скобках - Event.
Стрелками обозначенны последующие от Event - States.

Впрос вот в чем. 
Знаете ли вы какието имплементации которые подошли бы к данной задаче с помощью которой можно было бы решить данную проблему?
Если нет может уже ктото сталкивался и поможет советом как правильнее подойти к решению проблемы.

за ранее спасибо.

Автор: batigoal 14.2.2010, 16:18
Ну вот, например, нагуглился Java state framework: http://unimod.sourceforge.net/fsm-framework.html

Автор: Shtrun 14.2.2010, 16:23
спасибо за ответ. Но это я уже видел - такой "монстр" мне не нужен. Мне нужно чтото попроще..
Можно конечно поехать за сигаретами на Мерседесе но думаю за бензин денег больше заплатишь smile

Автор: batigoal 14.2.2010, 16:25
Shtrun, ну диаграмма классов его не смотрится монструозной... Если хочется большей оптимальности, то проще накидать свой фреймворчик - даже при небогатых навыках это работы на день, не больше.

Автор: ivanovpv 15.2.2010, 16:34
Цитата(Shtrun @  14.2.2010,  15:24 Найти цитируемый пост)
Есть задача создать не сложную Session State Machine.


Берем небольшую java db - мне лично нравится http://www.hsqldb.org/ - создаем табличку типа:
Код

CREATE TABLE Sessions
(session_id varchar(50),
state integer not null,
PRIMARY KEY (session_id));


применяем какой-нить генератор ключей обеспечивающий уникальность session_id, можно например воспользоваться Hibernate - там есть выбор генераторов. Далее пишем небольшую логику связанную с переходом полей state друг в друга (исходя из вашей диаграммы). И все.

Автор: Shtrun 15.2.2010, 17:32
спасибо всем за ответы.
Так и делаю. . напишу свой StateMachine по диограмме и буду апдэйтить сешшены в MySQL

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)