有限状态机的复杂行为建模有哪些替代方案?

时间:2013-01-23 02:50:12

标签: design-patterns state-machine

我已经了解了使用有限状态机的许多缺点,但是没有真正看到任何建议的复杂行为建模的替代模式 - 有没有?

1 个答案:

答案 0 :(得分:2)

你能给我们一些参考吗?我通常会看到FSM以发光的语言写出来。如果你真的有一个FSM,它们并不难实现,它们有很多优点。很多时候,人们认为他们有一个FSM,但他们真正拥有的是一些简单的程序性事情,通过几个步骤。如果是这种情况,那么要考虑的关键替代方案是设计模式Template Method

FSM真正发挥作用的地方,在模板方法可以做的事情之上和之外做的事情是,当从一个阶段到另一个阶段的进展存在限制时。例如,如果我们在编制类似于纳税申报表的方法,那么所有初步的收入收集和总工资的计算都是在第一阶段完成的,在工资完成之前就没有办法开始计算扣除额。 (这是一个人为的例子,但想象一下状态转换还有其他先决条件。)

模板方法,根据Gang of Four中的示例,可以在抽象类中强制执行某些操作必须按顺序继续执行一系列步骤的事实。关于模板方法的有趣之处在于您隐藏了这些细节并强制子类化程序只是提供所需步骤/方法的实现。