7

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

4

1 回答 1

2

你能给我们一些参考吗?我通常会看到 FSM 用光彩照人的方式写的。如果您真的拥有 FSM,那么它们实施起来并不难,并且具有很多优势。很多时候,虽然,人们认为他们有一个 FSM,但他们真正拥有的是一些简单的程序性的东西,通过几个步骤进行。如果是这种情况,那么要考虑的关键替代方案是设计模式Template Method

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

根据四人帮中的示例,模板方法可以在抽象类中强制执行某些操作必须按顺序执行一系列步骤的事实。模板方法的有趣之处在于您隐藏了这些细节并迫使子类仅提供所需步骤/方法的实现。

于 2013-01-23T03:08:47.237 回答