我有一个DVD播放器行为的状态图,它包含一个用于存放DVD的抽屉。在图中,关闭状态和打开状态表示抽屉关闭且抽屉分别打开时的状态。假设播放器处于打开状态时关闭,抽屉中没有CD并且抽屉打开,然后再次打开电源。逻辑上,抽屉处于关闭状态,但抽屉处于打开状态。然后,如果用户按下加载按钮,则系统打开已经处于打开状态的抽屉,因此没有效果。但是用户按下加载按钮是因为他看到抽屉处于打开状态,并希望抽屉在按下加载按钮时关闭。但如果他想要关闭抽屉,他必须再次按下加载按钮。我该如何解决这个问题呢?
答案 0 :(得分:2)
我该如何解决这个问题?
在实际操作中,您会依赖DVD播放器设备重启电源的某种通知:
如果播放器在电源循环时自动进入定义良好的状态,则可以将逻辑状态与(推断的)物理状态同步。
如果播放器有传感器来检测物理状态,您可以探测它们,然后将逻辑状态同步到该状态。
您可以发布"打开"或"关闭"命令,检查命令是否成功,并同步到从中推断出的物理状态。