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

发布于 2022-09-12 13:12:53 字数 575 浏览 27 评论 0

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

`

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文