如何将有限状态机集成到我的应用程序中?

时间:2012-09-21 19:26:18

标签: c++ model-view-controller fsm

嗨,对不起,如果已经涵盖了这一点。

我主要专注于编写数字软件,但在应用程序设计方面,我有点像菜鸟。

我编写了一个库,它基本上从不同的数据流或静态文件中获取输入,执行一些数据分析并将数据输出到屏幕或文件等,我决定编写一个gui应用程序来使它更多一点方便使用的。

必须进行库调用的顺序非常简单,但是根据应用程序所处的状态,应该处理哪些事件有一些限制。我不希望用户在他们已经从另一个数据源处理时开始从数据源抓取。

所以我决定使用有限状态机。但是,我想知道将有限状态机集成到应用程序中的最佳实践是什么。我应该将它作为我的库的公共接口,还是应该将它作为MVC框架中的控制器使用,其中库是模型,GUI是视图?或者是否有更好的方法来控制应用程序的流程?

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

你做对了。 Gui = View,FSM = Controller,Library + Static data + Database + Model。

话虽如此,看看你是否可以进一步将FSM分成两部分。状态转换定义本身应该是声明性的,以便您可以轻松更改状态规则。 FSM应该是一个简单的状态转换器,它使用状态规则库中的规则。

您可以使用PMML(XML的变体)以声明方式存储规则。

看看这个,它会更加雄辩地解释我试图说的内容: http://en.wikipedia.org/wiki/ADAPA

(与ADAPA无关)