状态机是最好的解决方案吗

Is a state machine the best solution

目前我正在尝试 redesign/refactor 一个当前作为状态机实现的现有应用程序,但我不确定这种设计模式是否是此类工作的最佳解决方案。

场景:配置设备

设备(传感器)必须先配置才能使用。我们有一个 Java EE 应用程序,用户可以在其中启动设备的配置过程。然后在设备和应用程序之间发送消息。最后,设备已配置(或处于 Error/Timeout 状态)并向外部系统发送报告。

目前进程被做成一个状态机,当前状态保存在数据库中。如果从设备接收到消息,则检索保存的状态并将下一条消息发送到设备 -> 下一个状态。如果设备没有应答,定时器会发送超时消息 -> 下一个状态(超时)

你怎么看?状态机模式真的适合这种情况吗?或者哪种设计更适合?

谢谢, 马库斯

我觉得不错,另一种选择可能是使用 bpm,但我认为它适用于另一种情况。