for*_*eka 5 design-patterns state-machine
我已经了解了使用有限状态机的许多缺点,但是没有真正看到任何建议的复杂行为建模的替代模式 - 有没有?
您能给我们一些参考吗?我通常看到关于 FSM 的描述都是充满热情的。如果你真的拥有 FSM,它们实施起来并不困难,而且有很多优点。不过,很多时候,人们认为他们拥有 FSM,但他们真正拥有的是一些通过几个步骤进行的简单程序。如果是这种情况,那么要考虑的关键替代方案是设计模式Template Method。
FSM 真正发挥作用的地方是,当从一个阶段到另一阶段的进展受到限制时,它可以完成超出模板方法所能完成的事情。例如,如果我们对纳税申报表的准备之类的事情进行建模,则所有收入的初步收集和总工资的计算都是在第一阶段完成的,并且在工资完成之前应该无法开始计算扣除额。(这是一个人为的例子,但想象一下状态转换还有其他先决条件。)
根据《四人帮》中的示例,模板方法可以在抽象类中强制执行某些操作必须按顺序执行一系列步骤的事实。模板方法的有趣之处在于,您隐藏了这些细节并强制子类化器简单地提供所需步骤/方法的实现。