1

我正在考虑用 Java 或 C++ 等 OOP 语言实现一个具有有限状态自动机的程序。

对于良好的软件设计,您认为使用可管理数量的可用状态来实现这一点的最佳方法是什么?

为每个州实现一个自己的类是否很好?如果是,如何在两个国家之间架起桥梁?

感谢您的任何评论!

4

3 回答 3

2

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

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

于 2010-06-16T12:50:37.537 回答
0

试试这个 - 设计部分很好,它显示了 fsm http://www.ibm.com/developerworks/library/wa-finitemach1/的用途

我见过的另一个用途是为计算机服务实现托管对象,使用 OMG 托管对象生命周期的扩展将对象从“向下”状态移动到“开始”状态等的转换“开始”

于 2010-06-16T13:15:21.227 回答
0

dk.brics.automaton库是 FSA 在 Java 中的良好实现。它在构建时考虑到了性能,因此它以一些 OOP 原则换取速度,但我建议你看看它。

于 2012-03-02T09:28:44.260 回答