状态图

状态图根据对象的逻辑状态和方式(主要确定了对象对外部激励的响应)指定对象的生命周期。对象状态可以从问题陈述和时序图中的对象生命线中引出。

下图显示了 HomeHeatingSystem 示例中 Room 的状态图。

从 SomeoneEntersTheRoom 时序图中 Room 的生命线中,您可以看到 Room 轮询其 occupancy 特性以查看它是否占用。如果已占用,它会在住户在调节器上设置希望的温度时向 Furnace 发送所需要的热量。一旦 RoomFurnace 接收到表示它已启动的消息,Room 会向 Valve 发送消息指示它打开。当房间足够温暖时,Room 会告诉 Furnace 停止供暖,然后关闭 Valve。最后,RoomFurnace 接收到应答,使它知道 Furnace 已停止。

从这个事件序列中,您可以看到 Room 有四个区域的职责或并发状态

区域 职责
方式 根据占用确定工作温度。
heatMode 确定需要供暖。
FurnaceMode 监视 Furnace 的状态。
采样 定期对供暖和占用传感器进行采样。

反馈