[发明专利]一种构建有限状态机模型框架的方法、装置及电子装置在审
申请号: | 201510523930.X | 申请日: | 2015-08-24 |
公开(公告)号: | CN105045603A | 公开(公告)日: | 2015-11-11 |
发明(设计)人: | 潘洪安 | 申请(专利权)人: | 北京金山安全软件有限公司 |
主分类号: | G06F9/44 | 分类号: | G06F9/44 |
代理公司: | 北京市广友专利事务所有限责任公司 11237 | 代理人: | 祁献民 |
地址: | 100085 北京*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 构建 有限状态机 模型 框架 方法 装置 电子 | ||
技术领域
本发明涉及计算机通信应用技术,尤其涉及一种构建有限状态机模型框架的方法、装置及电子装置。
背景技术
在计算机通信应用领域中,一个对象可以包含多种状态,即在不同条件下具有不同的状态,该对象可以通过有限状态机模型框架来进行描述。其中,有限状态机是指包含有限个状态以及能够在该有限个状态之间执行转换和动作等行为的计算模型,也就是说,在有限状态机模型框架中,如果对象在处于第一状态时发生了特定事件,将使得该对象从第一状态转换为第二状态,且在对象处于第二状态时,如果发生其他特定事件,又会使得该对象从第二状态转换为第三状态或重新转换为第一状态,其中,第一状态、第二状态以及第三状态为泛指,用以表示对象的不同状态。
现有技术选中,对于对象的有限状态机模型框架中对象各状态之间的转换,一般采用编程语言中的switch/case语句或if/else语句进行描述。以switch/case语句为例,通过为对象的每一状态设置一个case分支,用于对该状态进行处理,每一case分支对相应状态下的状态转换条件(事件类型)以及动作进行描述,即在case分支中,集成有检查状态转换条件以及进行状态转换处理。该方法在对象的有限状态量较少时,例如,对象具有十几或几十个状态,则可以通过switch/case语句或if/else语句,清楚、明确地描述对象各状态之间的转换。但如果对象的有限状态量较多,例如,对于一些项目或系统,例如,用于搜索引擎的分词、编译器的实现以及游戏开发,一个对象的有限状态多达成千上万,这样,各状态之间的转换次数十分浩大,举例来说,如果任意两个有限状态之间能够相互转换,则对于具有1000个有限状态的对象来说,其具有的状态转换次数高达对象各状态之间的转换关系复杂,使得利用现有switch/case语句或if/else语句来覆盖或描述该对象所有的状态转换,程序段代码将显得复杂混乱,对于技术开发人员来说,利用switch/case语句或if/else语句的编码效率将十分低下;进一步地,由于该方法完全不具备扩展性,如果对该对象进行状态转换增减,需要重新利用switch/case语句或if/else语句进行编程。
因此,如何能高效且扩展性地支持对象的状态转换,并有效提升编码效率,是构建有限状态机模型框架的热点研究问题。但目前在对象状态转换的应用场景中,还没有一个通用的有限状态机模型框架,使之能高效地处理对象较为复杂的状态转换,同时又能扩展性地支持新增和删除对象的状态转换,提升编码效率。
发明内容
有鉴于此,本发明实施例提供一种构建有限状态机模型框架的方法、装置及电子装置,支持扩展的对象状态转换增减、提升进行状态转换的编码效率。
为达到上述目的,本发明的实施例采用如下技术方案:
一方面,本发明实施例提供一种构建有限状态机模型框架的方法,包括:
依据对象的状态生成对象状态集;
确定对象状态集中包含的状态转换,获取每一确定的状态转换对应的事件类型,并为每一确定的状态转换配置对应的事件处理器;
在对象状态集中,依据每一状态转换分别对应的事件类型以及事件处理器,构建状态转换映射表;
向预先设置的事件分发控制器注册构建的状态转换映射表。
优选地,所述方法进一步包括:
事件分发控制器获取对象当前的状态以及当前生成的事件;
依据获取的对象当前的状态以及当前生成的事件,确定对象的事件类型,查询注册的该对象的状态转换映射表,得到确定的事件类型对应的事件处理器,通知得到的事件处理器执行状态转换操作。
优选地,所述状态转换映射表以表格或二维数组进行描述。
优选地,所述状态转换映射表包括:转换前状态、转换后状态、状态转换、事件类型以及事件处理器。
优选地,所述在事件分发控制器获取对象当前的状态之前,所述方法进一步包括:
对象启动后,向事件分发控制器上报当前状态,事件分发控制器在注册的状态转换映射表中设置对象的当前状态标识。
优选地,所述方法进一步包括:
在注册的状态转换映射表中,将事件处理器执行状态转换操作后的状态标识更新为当前状态标识。
优选地,所述方法进一步包括:
如果依据获取的对象当前的状态以及当前生成的事件,不能确定对象的事件类型,保持对象的当前状态。
优选地,所述方法进一步包括:
在注册的状态转换映射表中,添加新的状态、和/或,删除状态。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京金山安全软件有限公司,未经北京金山安全软件有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510523930.X/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种实现服务器在线更新网卡配置文件的方法
- 下一篇:显示发布信息的方法和装置