`
barryzhong
  • 浏览: 21279 次
  • 性别: Icon_minigender_1
社区版块
存档分类

生命周期组件框架:生命周期描述语言——复合状态机示例

阅读更多
    @StateMachine
    static interface OrderLifecycle {

        @StateSet
        static interface States {

            @Initial
            @Function(transition = Transitions.Start.class, value = Started.class)
            static interface Created {}
            @CompositeState
            @Function(transition = Transitions.Cancel.class, value = Canceled.class)
            static interface Started {

                @StateSet
                static interface SubStates {

                    @Initial
                    @Function(transition = OrderLifecycle.States.Started.SubTransitions.DoProduce.class, value = Producing.class)
                    static interface OrderCreated {}
                    @Function(transition = OrderLifecycle.States.Started.SubTransitions.DoDeliver.class, value = Delivering.class)
                    static interface Producing {}
                    @Function(transition = OrderLifecycle.States.Started.SubTransitions.ConfirmComplete.class, value = Done.class)
                    static interface Delivering {}
                    @End
                    @ShortCut(OrderLifecycle.States.Finished.class)
                    static interface Done {}
                }
                @TransitionSet
                static interface SubTransitions {

                    static interface DoProduce {}
                    static interface DoDeliver {}
                    static interface ConfirmComplete {}
                }
            }
            @End
            static interface Finished {}
            @End
            static interface Canceled {}
        }
        @TransitionSet
        static interface Transitions {

            static interface Start {}
            static interface Cancel {}
        }
    }
    public abstract static class ProductBase extends ReactiveObject {}
    @LifecycleMeta(OrderLifecycle.class)
    public static class ProductOrder extends ProductBase {

        public ProductOrder() {
            initialState(OrderLifecycle.States.Created.class.getSimpleName());
        }

        @Transition
        public void start() {}

        @Transition
        public void cancel() {}

        @Transition
        public void doProduce() {}

        @Transition
        public void doDeliver() {}

        @Transition
        public void confirmComplete() {}
    }

 前文:生命周期组件框架——关系型状态及服务

分享到:
评论

相关推荐

    [已更新Demo附件]生命周期组件框架——关系型状态机服务

    标题中的“生命周期组件框架——关系型状态机服务”暗示了我们即将探讨的是一个与软件开发相关的框架,特别关注的是对象或组件在其存在期间的行为管理。生命周期管理是编程中一个重要的概念,它涉及到对象从创建、...

    将Activity的生命周期打印出来

    在描述中提到的操作,如锁屏、亮屏、解锁或长按电源键,会触发以下特定的生命周期回调: - **锁屏**:通常会调用`onPause()`和`onStop()`。 - **亮屏**:如果Activity之前已停止,亮屏可能调用`onRestart()`、`...

    Fragment的生命周期以及使用技巧源码

    在`FragmentStudy`项目中,你可以找到各种示例,包括生命周期方法的打印,不同操作的处理,以及如何在Fragment之间传递数据。通过研究这些代码,你将能够更好地掌握Fragment的使用和最佳实践。 总结,Fragment是...

    状态机图习题.docx

    状态机图是一种强大的建模工具,常用于描述对象或系统在其生命周期中的行为,尤其是在软件工程、系统设计和计算机科学领域。它描绘了对象如何响应不同的事件,并通过一系列的状态转换来改变其状态。以下是对状态机图...

    react-NowUI是一款基于React的移动端UI组件框架

    然后通过引入所需组件,结合React的状态管理和生命周期方法,就可以轻松地在项目中使用这些组件。此外,NowUI通常与Redux或MobX等状态管理库配合使用,以实现更复杂的应用逻辑。 在实际开发过程中,开发者需要注意...

    嵌入式状态机的学习设计书籍

    状态机是一种模型,用于描述一个系统或对象在生命周期中的不同状态以及这些状态之间的转换。在嵌入式系统中,状态机可以有效地管理设备的行为,使其在不同的输入和条件下有条不紊地执行任务。 《基于状态机的嵌入式...

    ZStatus Unity 状态机插件源码

    状态机是一种抽象概念,用于描述一个系统或对象在生命周期内可能存在的不同状态以及这些状态之间的转换。在Unity中,状态机常用于AI行为、角色动画控制、游戏逻辑等场景。ZStatus插件的核心思想就是将复杂的状态逻辑...

    ASP.NET的网页代码模型及生命周期

    第4章 ASP.NET的网页代码模型及生命周期 从本章开始,就进入了ASP.NET应用程序开发的世界。在了解了C#的结构,以及面向对象的概念后,就可以从面向对象的思想开发ASP.NET应用程序。在ASP.NET中,能够使用面向对象的...

    使用ES6Promise实现的一个无限状态机

    在JavaScript的世界里,状态机(Finite State Machine,FSM)是一种设计模式,它用来描述一个对象在生命周期中可能经历的一系列状态以及这些状态之间的转换。这个"使用ES6 Promise实现的一个无限状态机"是一个创新的...

    Demo10-有限状态机的使用1

    有限状态机(Finite State Machine,FSM)是一种数学模型,用于描述系统在不同状态之间的转换。在游戏开发中,它常用于管理对象的行为,如游戏角色的各种动作,如站立、行走、攻击等。状态机通过一系列预定义的状态...

    Windows Workflow Foundation开发实战系列课程(2):状态机流程开发

    状态机流程通过一系列的状态转换来描述其行为,每个状态代表流程的一个阶段,而转换则定义了从一个状态到另一个状态的条件和行为。 在课程中,你将学习如何: 1. **理解状态机概念**:了解状态机的基本原理,包括...

    qt状态机 animatedtiles.zip

    总的来说,Qt状态机是一个强大而灵活的工具,能够帮助开发者以清晰的方式管理对象的生命周期和行为。通过学习和实践"animatedtiles"这样的示例,你可以更好地理解如何利用状态机来创建交互式、动态的用户界面,以及...

    Qt状态机实现动画

    Qt状态机是基于Qt的QStateMachine类实现的,它允许开发者通过定义一系列的状态和转换来描述一个对象或系统的生命周期。状态机可以根据不同的输入事件或时间间隔触发状态之间的转换,从而控制对象的行为。 在Qt中,...

    小程序示例

    2. **页面结构与生命周期**:学习如何组织小程序的页面结构,理解每个页面的生命周期方法,如onLoad、onShow等,以及何时使用它们。 3. **数据绑定与状态管理**:掌握小程序中数据的双向绑定机制,了解如何在页面间...

    Beginning WF Windows Workflow in .NET 4.0

    5. **第五章:工作流生命周期管理** —— 讨论了如何管理和控制工作流的状态转换过程。 6. **第六章:异常处理与事务管理** —— 深入讲解了如何在工作流中处理异常情况以及如何利用事务来确保数据的一致性。 7. **...

    基于phaserjs游戏框架开发的飞机大战入门游戏示例

    - 通过阅读`main.js`源代码,理解游戏的生命周期和事件处理机制。 - 分析`assets/`目录下的资源文件,了解如何在Phaser中加载和使用这些资源。 - 查阅Phaser.js官方文档,了解更多的API和功能。 - 参考其他...

    XAF状态机的使用.docx

    枚举常量反映了账单生命周期中的各个阶段,这是构建状态机模型的基础。 接下来,我们看到一个属性`账单状态`,它使用`ImmediatePostData`特性标记,表明当这个属性值改变时,系统会立即保存数据。这个属性不仅存储...

    微信小程序-功能示例:番茄时钟.zip

    在这个“微信小程序-功能示例:番茄时钟.zip”中,我们看到的是一个利用微信小程序框架开发的番茄工作法(Pomodoro Technique)应用实例。 番茄工作法是一种时间管理技巧,它通过25分钟的专注工作加上5分钟的短暂...

    一个基于vueJS的模仿手机消息的web前端消息展示组件

    6. **生命周期钩子**:Vue组件有多个生命周期钩子函数,如`created`、`mounted`、`updated`等,用于在组件的不同阶段执行特定逻辑。例如,在`mounted`钩子中,我们可能加载初始消息数据。 除了VueJS的核心特性,这...

    Qt状态机事件处理例程!!

    总的来说,Qt状态机为开发者提供了灵活且可扩展的机制来管理对象或系统的生命周期,使得在面对复杂的事件处理和状态变化时能保持代码清晰和可维护。通过熟练掌握QStateMachine的使用,可以极大地提高软件的健壮性和...

Global site tag (gtag.js) - Google Analytics