标签: mdriven
我正在定义一台状态机,并希望让机器运行"运行"何时创建对象。考虑到这一点,我在所有转换(并且只定义了防护)上省略了触发器。似乎创建的对象如果不进一步触发则保持在第一状态?如何避免必须明确调用触发器?如果我执行了一个触发器,所有后续状态都会通过该(一个)触发器调用传递?有什么东西"特别"与第一个州?
答案 0 :(得分:3)
第一个状态是特殊的,不需要触发器。从开始状态的转换是在对象创建时执行的。
要模仿您正在寻找的行为,您可以在所有其他过渡上使用相同的触发方法。这些转换受到保护,因此一次只有1个转换有效。但是你需要实际执行这个单一触发器以使任何事情发生。
您现在可以检查是否可以触发,如果是,则通过此伪代码触发: 如果self.trigger?然后是self.trigger