Стоит проблема создания проводки заказа, допустим, по продаже билетов....
Есть нарисованный КА — тут все хорошо, до тех пор, пока есть только билеты.
Разширением являеться добавление виз. При этом КА разрастется в 2-3 раза,
это при том что надо еще делать страховки и т.д.
Что я придумал сделать, так это сделать отдельные КА для билетов, страховок, виз
и прочих заказов. И так же есть КА самого заказа.
Идея такая, что основной КА переходит из состояния в сотояние, при определенном состоянии
остальных (билеты, визы, ...) КА. Что получаеться тоже довольно неудобно.
Есть ли какие-нить готовые решения для таких задач?
Что я придумал, так это немного изменить методологию КА. А добавил ф-цию к состоянию, которая либо позволяет переходить дальше, либо запрещает переход. Но тут бок с тем, что непонятно когда проверять эту ф-цию. Ведь события для перехода инициируеться обычно 1 раз.
Кто-нить занимплся подобными задачами? Был бы очень благодарен за совет.
Если кому не понятна задача, спрашивайте — я расскажу более подробно.
Здравствуйте, Return, Вы писали:
R>Стоит проблема создания проводки заказа, допустим, по продаже билетов.... R>Есть нарисованный КА — тут все хорошо, до тех пор, пока есть только билеты. R>Разширением являеться добавление виз. При этом КА разрастется в 2-3 раза, R>это при том что надо еще делать страховки и т.д.
А если сделать стек конечных автоматов?
Те есть автомат заказа билета. Когда пользователь нажал на кнопку добавления визы то автомат заказа билета замораживается и управление передается автомату добавления виз. Когда автомат добавления виз закончил свою работу он возвращает некоторую информацию автомату заказа билета после чего автомат заказа билета продолжает свою работу.
... << RSDN@Home 1.1.4 beta 6a rev. 436>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Здравствуйте, WolfHound, Вы писали:
WH>А если сделать стек конечных автоматов? WH>Те есть автомат заказа билета. Когда пользователь нажал на кнопку добавления визы то автомат заказа билета замораживается и управление передается автомату добавления виз. Когда автомат добавления виз закончил свою работу он возвращает некоторую информацию автомату заказа билета после чего автомат заказа билета продолжает свою работу.
Не, стек я думаю тут не поможет, так как проводка этих ордеров по-сути идет параллельно.
Я написал выше как я приметно хочу сделать:
Немного изменить методологию КА. Я добавил ф-цию к состоянию, которая либо позволяет переходить дальше, либо запрещает переход. Но тут бок с тем, что непонятно когда проверять эту ф-цию. Ведь события для перехода инициируеться обычно 1 раз. то есть получиться, что надо проверять будет через нек. интервалы, или посредством каких либо событий.