在古典型状态机中,您所说的子状态完全可以定义成主状态中的一个状态。至于主状态不执行,则子状态不执行,由于状态的执行时某一时刻仅能执行一种状态,本身就能满足这个要求。
有些情况下,需要状态机的嵌套,前提是嵌套的状态机中的状态是多个状态中的共有状态。比如一般可以把一个状态分为
"进入状态、执行状态和离开状态”,其中进入状态和离开状态都是瞬时的,仅执行一次。在进入状态时做一些初始化工作,在离开状态时做一些复位工作,并转入另外状态。
对于多个状态中的共有状态,采用子状态处理是非常合适的,可以极大地减少主状态的数量。但是如果各个子状态均不相同,还是转化成主状态比较合理。
上述的子状态比较容易实现,无非是通过移位寄存器保存子状态的枚举,这和主状态实现机理相同。