您知道Qt StateMachine Framework是否有可能执行组合规则,例如“最好不要在这种类型的状态之前出现这种状态”。
示例:
QStateMachine machine;
QState *checked = new QState();
QState *prepared = new QState();
QState *loaded = new QState();
QState *synced = new QState();
checked->addTransition(thread, SIGNAL(prepared()), prepared);
prepared->addTransition(thread, SIGNAL(loaded()), loaded);
loaded->addTransition(thread, SIGNAL(prepared()), prepared); // <- for example compile-time error, should not allow prepared after loaded
我知道状态机的定义是执行的“规则集”。只是为了最大程度地减少复制和粘贴错误以及其他对状态和状态机的重用而造成的违规,并尽早获得反馈。