在OOP中实现有限状态自动机

时间:2010-06-16 12:38:57

标签: oop software-design automaton

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

对于良好的软件设计,您认为以可管理的可用状态实现此目标的最佳方式是什么?

为每个州实施一个自己的班级是否好? 如果是,如何在两个州之间架起桥梁?

感谢您的任何评论!

3 个答案:

答案 0 :(得分:2)

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

对于项目,我建议您根据目标使用情况,在该域中查找库。例如,Java有许多用于工作流/业务流的MANY库,以及大量的规则引擎(虽然它是一个复杂的庞然大物,但Drools才会想到它,但它是一个复杂的庞然大物)

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

dk.brics.automaton库是Java中FSA的良好实现。它的构建考虑了性能,所以它以速度的一些OOP原则进行交易,但我建议你看看它。