比如我现在有一个类M,他有一个状态属性state,有3种状态A,B,C,每变到一个状态,他需要做一点操作,然后改变成下一个状态。
现在我实现的代码如下,很简单,但是会有个致命的问题,从第一个函数进去后,一直不会返回,随着程序进行下去,函数栈会越来越大。
开始我以为这可以用状态模式来解决,但是问题在于状态模式执行行为是在外面的,我现在需要每次跳转到一个新状态,就立刻执行一些事情,然后跳转到下一个状态,他是自发的。
我应该如何设计这个程序,防止函数一直跳不出来呢?
`
class M {
State state;
func a() {
doSomethingA();
self.state = B;
b();
}
func b() {
doSomethingB();
self.state = C;
c();
}
func c() {
doSomethingC();
self.state = A;
a();
}
}
`
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…