class переход {
int старое_состояние;
int событие;
int новое_состояние;
public:
int соответствовать(int событие, int текущее состояние, переход экземпляра)
void создать (int событие, int новое_состояние, int старое_состояние, КМС my_fsm);
}
Класс переход инкапсулирует данные, которые описывает каждый переход для всех моделей состояний в программе. Каждый экземпляр перехода соответствует ячейке (отличной от ячейки НП) в таблице переходов состояния.
class КМС {
string имя_КМС;
переход экземпляр1;
……
переход экземплярN;
public:
int пройти (int события; int текущее_состояние, КМС my_fsm);
void Добавить переход (КМС my_fsm);
КМС создать (string имя_КМС);
}
Класс КМС служит для связывания всех экземпляров перехода, которые составляют одну модель состояний. Точная физическая структура данных, применяемых в КМС и переходе будет зависеть от используемой среды разработки. Один из возможных подходов заключается в определении КМС как потомка класса список.
Активный экземпляр явл-ся абстрактным классом, из кот-го все экземпляры, имеющие конечные автоматы, наследуют их текущее состояние.
class активный_экземпляр{
int текущее_состояние;
public:
int совершить_событие(КМС my_fsm, int событие, активный экземпляр экземпляр);
}
