Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
2.1k views
in Technique[技术] by (71.8m points)

我该如何设计这个自动跳转状态的程序?

比如我现在有一个类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();
    }
}

`


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)
等待大神解答

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

1.4m articles

1.4m replys

5 comments

57.0k users

...