реализовать FLOW.
От: zubr Россия  
Дата: 08.09.06 16:38
Оценка:
Здравствуйте!

Пожалуйста подскажите мне. Есть определенный flow(какие диалоги показывать, что печатать, в какой момент сохранять данные, в общем список действий) у приложения. Данное приложение взаимодействует с внешним приложением и получает от него данные. Примерно выглядит так (наше приложение — B):

1. A sends data to B. [switch application]
2. B choose flow1 or flow2.
3. B sends data to A. [switch application]
4. A accept(продолжение) or decline(отмена).
5. A sends data to B. [switch application]
6. B continues started flow.
7. B sends data to A. [switch application]


Проблема вся в том, что приложения после передачи данных "выключаются" (заканчивают свою работу, и к сожалению изменить это невозможно, второе приложение по настоящему сторонее ).
Каждое приложение может сохранять свои данные в файле.
flow1 и flow2 разбивается на шаги, например, спросить у пользователя какая погода, спросить у пользователя какое у него настроение, и т.п.

У меня родилась идея, разбив каждый flow на шаг, реализовать имплементации в субклассах некоего абстрактного Step.
При первом старте приложения (в данных переданных от A ясно что это второе включение приложения B) мы выбираем flow и сохраняем шаги в списке. Далее приложение перед тем как отдать управление просто сохраняет список шагов в файле и при последующем старте восстанавливает и продолжает свою работу по сохраненным шагам. Может у вас есть критика к данному подходу или может что будет действительно лучше идея как это реализовать. В действительности сейчас реализовано на switch-ах, выглядит убого:

switch (state)
{
//...
case 6:
  //...
  state += 1;
  break;
//...
}

Язык имплементации C++.

Заранее благодарю за помощь, и надеюсь на ваше понимание.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.