[发明专利]一种基于状态机的消息驱动方法和装置有效
申请号: | 201110453245.6 | 申请日: | 2011-12-30 |
公开(公告)号: | CN102541644A | 公开(公告)日: | 2012-07-04 |
发明(设计)人: | 熊磊 | 申请(专利权)人: | 深圳市万兴软件有限公司 |
主分类号: | G06F9/46 | 分类号: | G06F9/46 |
代理公司: | 深圳汇智容达专利商标事务所(普通合伙) 44238 | 代理人: | 潘中毅 |
地址: | 518057 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 状态机 消息 驱动 方法 装置 | ||
技术领域
本发明涉及计算机领域,尤其涉及一种基于状态机的消息驱动方法和装置。
背景技术
在现有的娱乐软件平台搭建过程中,一般会将平台设计为用户界面层、逻辑状态层、功能支撑层的三层结构,其目的在于尽量使平台层与层之间的功能分明,利于开发设计和后续的升级。
在现有的平台搭建过程中,虽然在设计时尽量按照三层结构去搭建,但是因为其中涉及诸多各层之间,特别是同一层之间的程序模块相互调用,使得虽然平台分为用户界面层、逻辑状态层、功能支撑层,但各层之间,以及同层之间的程序模块的联系仍然比较紧密,开发设计和后续的升级过程中,需要兼顾各个层程序模块的功能实现,不利于平台的开发设计和后续升级。
发明内容
本发明实施例所要解决的技术问题在于,提供一种基于状态机的消息驱动方法和装置,可降低软件架构层与层之间、以及同层的各程序模块之间的耦合性,使程序模块的实现方式更加灵活,且可以根据需求实时加载或卸载程序模块,充分利用系统资源。
为了解决上述技术问题,本发明实施例提供了一种基于状态机的消息驱动方法,包括:
状态机接收挂接在本机上的程序模块发送的注册请求;所述注册请求中包括该程序模块在运行过程中会发送、接收的消息和系统控制指令;
状态机根据挂接在本机上的程序模块发送的注册请求进行初始化,并生成注册消息表;
状态机根据所述注册消息表,将接收的消息转发至对应的程序模块。
其中,所述状态机包括三层结构,从上往下依次为:用户界面层状态机、逻辑状态层状态机、功能支撑层状态机。
其中,所述用户界面层状态机接收位于用户界面层的程序模块发送的注册请求,生成用户界面层注册消息表;
逻辑状态层状态机接收位于逻辑状态层的程序模块发送的注册请求,生成逻辑状态层注册消息表;
功能支撑层状态机接收位于功能支撑层的程序模块发送的注册请求,生成功能支撑层注册消息表。
其中,所述状态机根据所述注册消息表,将接收的消息转发至对应的程序模块包括:
状态机接收到消息后,在自身的注册消息表中查找本层是否有接收所述消息的程序模块;若有,则将所述消息转发给对应的程序模块;若没有,则状态机将所述消息转发给其它层的状态机。
其中,所述状态机将所述消息转发给其它层的状态机包括:
用户界面层状态机和功能支撑层状态机判断消息来源,若消息来自状态机自身所在层的程序模块,则用户界面层状态机和功能支撑层状态机向逻辑状态层状态机转发消息;若消息来自逻辑状态层状态机,则用户界面层状态机和功能支撑层状态机向逻辑状态层状态机丢弃该消息;
逻辑状态层状态机判断消息来源,若消息来自本层的程序模块,则向用户界面层状态机和功能支撑层状态机转发该消息;若消息来自用户界面层状态机,则向功能支撑层状态机转发该消息;若消息来自功能支撑层状态机,则向用户界面层状态机转发该消息。
其中,所述状态机在转发消息的过程中,不对消息进行任何处理。
相应的,本发明实施例还提供一种基于状态机的消息驱动装置,该装置由多个状态机组成,且每一个的状态机都包括:
注册请求接收模块,用于接收挂接在本机上的程序模块发送的注册请求;所述注册请求中包括该程序模块在运行过程中会发送、接收的消息和系统控制指令;
消息表创建模块,用于根据所述注册请求接收模块所接收的挂接在本机上的程序模块发送的注册请求进行初始化,并生成注册消息表;
消息转发模块,用于根据所述消息表创建模块所生成的注册消息表,将接收的消息转发至对应的程序模块。
其中,该装置包括三个状态机,从上往下依次为:用户界面层状态机、逻辑状态层状态机、功能支撑层状态机;
用户界面层状态机接收位于用户界面层的程序模块发送的注册请求,生成用户界面层注册消息表;逻辑状态层状态机接收位于逻辑状态层的程序模块发送的注册请求,生成逻辑状态层注册消息表;功能支撑层状态机接收位于功能支撑层的程序模块发送的注册请求,生成功能支撑层注册消息表。
其中,所述消息转发模块包括:
查询单元,用于在状态机接收到消息后,在消息表创建模块生成的注册消息表中查找本层是否有接收所述消息的程序模块;
转发单元,用于在查询单元判定本层有接收所述消息的程序模块时,将所述消息转发给对应的程序模块;在查询单元判定本层没有接收所述消息的程序模块时,将所述消息转发给其它层的状态机。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳市万兴软件有限公司,未经深圳市万兴软件有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110453245.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种灯壳结构
- 下一篇:一种锁附件、背光模组和液晶显示装置