我正在考虑用Java或C ++等OOP语言实现一个带有限状态自动机的程序。
对于良好的软件设计,您认为以可管理的可用状态实现此目标的最佳方式是什么?
为每个州实施一个自己的班级是否好? 如果是,如何在两个州之间架起桥梁?
感谢您的任何评论!
答案 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原则进行交易,但我建议你看看它。