按照事件发生的位置,可以把事件分为外部事件和内部事件两种类型。外部事件指 在系统外部参与者激发的事件。例如,按下按钮是一个外部事件。内部事件指在系统内 部的要素激发的事件。例如,因系统发生溢出,而产生的异常就是一个内部事件。 2.按事件的性质分 按事件的性质可以把事件分为调用事件、信号事件、变化事件和时间事件等4种类 型 743几种不同类型的事件 1.调用事件 调用事件( call event)表示发送对象发给接收对象的调用消息的接收消息事件,并由 该事件触发接收对象的状态转换。调用事件是在接收对象一方发生的接收消息事件,状 态机只关注因调用事件而引起接收对象的状态转换,以及应执行的操作,并不关心发送 对象 图76描述控制器检测到有人进入,给自动门发送 opend消息,启动自动门打开的 顺序图。假设自动门目前处在关闭状态,它接收到控制器发来的open消息事件,自动 门由关闭状态转换到打开状态,见图77。 控制器 自动 [有人进入open0 图76控制器控制自动门打开 [aften60s)]/ close 打开 有人选入]open 图77因调用事件引起自动门状态改变 图76中的有人进入 Opend,是控制器发给自动门的调用消息,该消息中[有人进入] 为条件,open)是调用操作。在图77中,[有人进入是状态转换的监护条件,/open是6 按照事件发生的位置,可以把事件分为外部事件和内部事件两种类型。外部事件指 在系统外部参与者激发的事件。例如,按下按钮是一个外部事件。内部事件指在系统内 部的要素激发的事件。例如,因系统发生溢出,而产生的异常就是一个内部事件。 2. 按事件的性质分 按事件的性质可以把事件分为调用事件、信号事件、变化事件和时间事件等 4 种类 型。 7.4.3 几种不同类型的事件 1. 调用事件 调用事件(call event)表示发送对象发给接收对象的调用消息的接收消息事件,并由 该事件触发接收对象的状态转换。调用事件是在接收对象一方发生的接收消息事件,状 态机只关注因调用事件而引起接收对象的状态转换,以及应执行的操作,并不关心发送 对象。 图 7.6 描述控制器检测到有人进入,给自动门发送 open()消息,启动自动门打开的 顺序图。假设自动门目前处在关闭状态,它接收到控制器发来的 open()消息事件,自动 门由关闭状态转换到打开状态,见图 7.7。 图 7.6 中的[有人进入]open(),是控制器发给自动门的调用消息,该消息中[有人进入] 为条件,open()是调用操作。在图 7.7 中,[有人进入]是状态转换的监护条件,/open()是 图 7.7 因调用事件引起自动门状态改变 图 7.6 控制器控制自动门打开