在OOP中实现有限状态自动机 我想用一个OP语言,如java或C++,用有限状态自动机来实现一个程序。

在OOP中实现有限状态自动机 我想用一个OP语言,如java或C++,用有限状态自动机来实现一个程序。,oop,software-design,automaton,Oop,Software Design,Automaton,关于良好的软件设计,您认为在可管理的可用状态下实现这一点的最佳方法是什么 为每个州实现一个自己的类好吗? 如果是,如何在两个州之间建立桥梁 谢谢你的评论 这只是为了锻炼你的编程能力,还是为了一个实际的项目?在任何一种情况下,这取决于您希望状态机用于什么: -它是在某种工作流中管理任务吗 -是否确定应用程序流状态 -是否用于业务规则引擎等 对于一个项目,我建议,根据您的目标用途,您可以在该领域中查找库。例如,Java有许多用于工作流/业务流的库,以及大量的规则引擎(尽管它是一个复杂的庞然大物,但从

关于良好的软件设计,您认为在可管理的可用状态下实现这一点的最佳方法是什么

为每个州实现一个自己的类好吗? 如果是,如何在两个州之间建立桥梁


谢谢你的评论

这只是为了锻炼你的编程能力,还是为了一个实际的项目?在任何一种情况下,这取决于您希望状态机用于什么: -它是在某种工作流中管理任务吗 -是否确定应用程序流状态 -是否用于业务规则引擎等


对于一个项目,我建议,根据您的目标用途,您可以在该领域中查找库。例如,Java有许多用于工作流/业务流的库,以及大量的规则引擎(尽管它是一个复杂的庞然大物,但从一开始就想到了Drools)

试试这个——关于设计的部分很好,它展示了fsm的用途


我看到的另一个用途是为计算机服务实现托管对象,通过使用OMG托管对象生命周期的扩展,将对象从“向下”状态转换为“开始”状态等。该库是Java中FSA的良好实现。它的构建考虑到了性能,因此它在速度上采用了一些面向对象的原则,但我建议您看看。

您可能想看看:状态自动机是如何在分析工具中实现的,一些使用虚拟调度的面向对象系统,或者使用静态调度和代码生成的生产质量系统有很大的不同。你不太可能得到允许跟踪和记录的东西,你想在模拟器中调试一个状态机,并以千兆的速度运行一个协议-实现该机器的最佳方式取决于你希望它能做什么。目前更令人感兴趣的是…在我的研究中,我们从理论上讲,自动机(非常彻底),当时我不明白它们有什么好处。现在我正在考虑用这些工具编写一个(不是很大的)web项目