我有一个状态机,有许多状态
A--B--C--D--E
。例如,如果某个条件得到验证,我有许多从 C
到 A
的转换。对于每个状态,我都有一个继承抽象类 State
的类,并且我有一个管理器将每个转换方法委托给状态方法。问题是“状态能否直接调用管理器的转换方法?”我在互联网上只看到过一些示例,其中有一个主要类确切地知道转换发生的次数(例如insertQuarter()
,ejectQuarter()
,turnCrank()
,dispense()
)。
我找到的唯一方法是在状态中调用管理器的转换方法。这是错误或不好的做法吗?