此方法负责使用实际状态图内的事件。 processEvent 方法调用此方法。
OMReactive 具有 rootState_dispatchEvent 的实施和 undoBusy 方法。对于平铺状态图实施,从 OMReactive 继承的每个类会根据其特定的状态图实施覆盖这些方法。 对于可以复用的状态图实施,这些方法按原样使用。
Rational® Rhapsody® 框架对真实状态图“一无所知”;仅知道 rootState_entDef和 rootState_dispatchEvent 方法。每个具体类知道如何对每个事件做出反应,因为它有自身的生成代码。 因此,对于平铺状态图实施,具体类会使用自己的定制实施覆盖这两个虚方法。
平铺状态图使用 switch 和 if 语句构造。它们在时间和空间上都更高效,并提供定制实施。可复用状态图使用对象构造,提供常用的面相对象功能(例如,继承、封装和多态性)。 它们提供通用实施。 Rational Rhapsody 缺省使用平铺状态图。
在可复用状态图实施中,rootstate_dispatchEvent 调用根状态 takeTrigger 操作。