6.5.6 状态图之间的消息发送
状态图之间发送消息是指某一个状态图所描述的对象向另一个状态图所描述的对象发送消息,本质上类似于将协作图和状态图合并,但语法上需做相应调整。状态图向其他状态图发送消息,可用动作(如在发送子句中指明接收者)或状态图之间的带实心箭头的虚线来表示。当采用带实心箭头的虚线时,状态图必须画在矩形框中。在状态图之间画表示消息时有两种画法。第一种画法是从表示源对象的状态图的状态转移上画带实心箭头的虚线到表示目标对象的状态图的边框上。此时,在目标对象状态图中应画一个捕获这个消息的相应的转移。第二种画法是在两个状态图的边框间(即两个对象间)画带实心箭头的虚线,表示源对象在执行期间的某一时刻发送消息。此时,在目标对象状态图中也必须有相应的转移,以捕获该消息。
案例学习
◎图6-23描述了状态图之间的消息发送。图中左边矩形框内描述温度计时控制器的状态图,右边矩形框内描述电烤箱恒温加热的状态图,两个围有外框的状态图之间有消息传递。从温度计时控制器状态图的状态转移线上发送两条消息给电烤箱恒温加热状态图,从转移线上引出两条带实心箭头的虚线直达电烤箱恒温加热状态图的外框,消息的内容标注其上,一个是“加热()”,另一个是“关机()”,而在电烤箱恒温加热状态图中有两个转移与之对应,响应传递消息的触发。(https://www.daowen.com)

图6-23 状态图之间的消息发送