[发明专利]状态切换方法、装置、设备和存储介质有效
| 申请号: | 202010064587.8 | 申请日: | 2020-01-20 |
| 公开(公告)号: | CN111273969B | 公开(公告)日: | 2021-08-10 |
| 发明(设计)人: | 池起协;沈海峰;孙良夫 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
| 主分类号: | G06F9/448 | 分类号: | G06F9/448;G06F9/48 |
| 代理公司: | 北京三高永信知识产权代理有限责任公司 11138 | 代理人: | 祝亚男 |
| 地址: | 518057 广东省深圳*** | 国省代码: | 广东;44 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 状态 切换 方法 装置 设备 存储 介质 | ||
本申请提供了一种状态切换方法、装置、设备和存储介质,涉及计算机技术领域。所述方法包括:获取目标对象的第一状态;响应于第一状态对应的触发事件中包含的第一事件发生,获取第一事件对应的事件处理逻辑;执行第一事件对应的事件处理逻辑,将目标对象从第一状态切换为第二状态。相比于相关技术中,对于状态机中一个状态的状态切换,需要多次重复编写。本申请实施例提供的技术方案,通过状态集合将目标对象的多种状态和各个状态对应的触发事件进行整合,使得状态机的设计更加直观和简洁,进一步有利于状态机的维护。
技术领域
本申请实施例涉及计算机技术领域,特别涉及一种状态切换方法、装置、设备和存储介质。
背景技术
状态机定义了多个状态以及状态之间的转换。状态机通过响应一系列事件而运行,当事件满足某些触发条件时,将导致状态机从当前的状态转换到下一个状态。
相关技术中,假设状态机的对象包括四种状态,如状态A、状态B、状态C和状态D,该状态机的对象当前所处的状态为状态A,在不同的事件的触发下,可以切换到状态B、状态C或者状态D。则该状态机可以表示为:状态A,发生事件1,状态A切换为状态B;状态A,发生事件2,状态A切换为状态C;状态A,发生事件3,状态A切换为状态D。
在上述相关技术中,状态机的设计比较繁琐,不利于状态机的维护。
发明内容
本申请实施例提供了一种状态切换方法、装置、设备和存储介质,可用于简化状态机的设计。所述技术方案如下:
一方面,本申请实施例提供了一种状态切换方法,所述方法包括:
获取目标对象的第一状态,所述目标对象的状态集合中包括n种状态以及所述n种状态分别对应的触发事件,其中,所述n种状态中的第i种状态对应的触发事件,是指触发所述目标对象在所述第i种状态下进行状态切换的事件,所述n为正整数,所述i为小于或等于所述n的正整数;
响应于所述第一状态对应的触发事件中包含的第一事件发生,获取所述第一事件对应的事件处理逻辑;
执行所述第一事件对应的事件处理逻辑,将所述目标对象从所述第一状态切换为第二状态。
另一方面,本申请实施例提供了一种状态切换装置,所述装置包括:
状态获取模块,用于获取目标对象的第一状态,所述目标对象的状态集合中包括n种状态以及所述n种状态分别对应的触发事件,其中,所述n种状态中的第i种状态对应的触发事件,是指触发所述目标对象在所述第i种状态下进行状态切换的事件,所述n为正整数,所述i为小于或等于所述n的正整数;
逻辑获取模块,用于响应于所述第一状态对应的触发事件中包含的第一事件发生,获取所述第一事件对应的事件处理逻辑;
状态切换模块,用于执行所述第一事件对应的事件处理逻辑,将所述目标对象从所述第一状态切换为第二状态。
再一方面,本申请实施例提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如上述方面所述的状态切换方法。
再一方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如上述方面所述的状态切换方法。
还一方面,本申请实施例提供了一种计算机程序产品,所述计算机程序产品被处理器执行时,用于实现上述状态切换方法。
本申请实施例提供的技术方案可以包括如下有益效果:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010064587.8/2.html,转载请声明来源钻瓜专利网。





