Сегодня сделал такую простую машину состояний, так вроде оно называется. Что называется, попробуйте немножко лиспа
Зачем это нужно - если есть набор правил, и нужно согласно с этими правилами что-то делать то либо нужно писать многоуровневый IF-ELSE-IF-ELSE либо сделать FSM.
Многоэтажные конструкции IF-ELSE-IF-ELSE просто писать, но сложно читать. И упаси боже через неделю придется покопаться в правилах. FSM легко определить и легко потом читать изменять, но нужен тот собственный черный ящик который будет правила исполнять. Кстати по правилам легко генерировать картинки (слева), ещё более упрощая понимание. Вычленил свой код а крохотную библиотечку, сначала думал может статейку какую написать простенькую, а сейчас уже остыл, может и не надо это никому.
Вместо “мяса” реализации логики тут везде null
Node countTimeOutStatementNode = new StatementNodeAdaptor("countTimeout", "orderCheck", null);
Node countOrderFailureStatementNode = new StatementNodeAdaptor("countOrderFailure"
Nov 10
Вот собственно код который поясняет эта диаграмма
November 11th, 2006 at 12:28 am
Агаси, а еще есть разные способы имплементации. Я предпочитаю строить мапу переходов, но не всегда это проходит.
Писать статью..ну, тема довольно избитая, чем гря..
November 11th, 2006 at 9:18 am
ну вот, хорошо что не стал