我正在开发一个已有几年历史的桌面应用程序。应用程序的状态(关于用户当前正在执行的操作(多步操作),正在执行的计算,数据的权限状态,后台作业等)通过许多不同的方法(事件订阅,成员变量)来维护在控制器类中,依赖于其他类的内部逻辑/行为等...)
所以我的问题是,存在哪些常见模式(显式状态机除外)来管理足够灵活的应用程序状态:
这是一个GUI应用程序,因此我们可以在共享/达到不同状态时依赖应用程序的层次结构特性。
答案 0 :(得分:0)
状态机很简单,新手程序员可以理解,因此找到一个能够在以后帮助开发的人可能更容易。现有的库和工具也很少与状态机一起使用,因此从其他方面可能更容易。您还可以使用多个状态机,并通过一些简单的pub / sub基础架构进行通信。
类似方法是Petri Nets。它有点复杂,我还没有真正的实现经验,但它允许多个状态立即激活以表达并行进程。否则它看起来非常类似于传统的有限状态机。