Здравствуйте!
Пожалуйста подскажите мне. Есть определенный 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++.
Заранее благодарю за помощь, и надеюсь на ваше понимание.