股票客户端组件间的事件处理方法、系统、介质及终端与流程
未命名
07-23
阅读:136
评论:0
1.本发明涉及客户端技术领域,具体地,涉及一种股票客户端组件间的事件处理方法、系统、介质及终端。尤其涉及组件事件的发送和响应。
背景技术:
2.随着科学技术的发展,图形界面的客户端程序的广泛应用为用户带来了很大便利。比如具有股市行情功能的客户端程序,方便用户及时获取股市最新行情和资讯。在图形化界面编程中,通常使用事件驱动方式实现交互,其中,组件间的事件处理机制是核心的技术内容。
3.而目前windows客户端中组件间的事件产生和事件响应是高耦合关系,具体的事件处理机制是在窗口产生事件时,窗口本身需要同时指定该事件的响应者。如果有多个组件需要响应该事件,则需要分别使用postmessage发送事件给不同的响应窗口。这就造成了,一旦事件的响应有修改时,就需要修改该事件产生位置的代码,降低了开发效率,且不适用于组件化开发场景。
4.专利文献cn107329842b公开了一种基于qt信号槽机制的获取数据的方法及终端,包括步骤:数据请求模块定义一个槽;数据请求模块通知对象管理模块根据所述槽对应的接口请求参数在接口列表中请求对应的接口以获取数据;对象管理模块从对象池中获取一个对象,并为所述对象设定与所述槽对应的接口和接口请求参数;对象管理模块通过qt信号槽连接模板建立所述对象的信号与数据请求模块的槽之间的连接;对象管理模块控制所述对象向服务器发送所述的数据请求;所述对象接收服务器发送的响应信号;所述对象通过qt信号槽将响应信号发送给数据请求模块的槽。
5.目前已经提出的组件间的响应方法中仍存在一些技术缺陷:
6.1、在采用组件化开发模式下,无法实现组件间的低耦合事件处理机制,降低开发效率。
7.2、组件和组件之间是直接调用关系,事件处理形式不灵活。
技术实现要素:
8.针对现有技术中的缺陷,本发明的目的是提供一种股票客户端组件间的事件处理方法、系统、介质及终端。
9.根据本发明提供的一种股票客户端组件间的事件处理方法,包括:
10.步骤s1:获取客户端界面的组件产生的事件;
11.步骤s2:查找生产事件的组件所属界面对应的界面事件响应表,是否存在所述事件对应的事件响应项;若不存在,则结束流程;若存在,则触发步骤s3;
12.步骤s3:根据所述事件响应项,调用生产事件的组件所属界面的其它组件来响应所述事件。
13.优选地,在所述步骤s3中,当允许生产事件的组件发送事件时,根据所述事件响应
项,调用生产事件的组件所属界面的其它组件来响应所述事件。
14.优选地,所述界面事件响应表包括:
15.name:标识事件名称,组件发送事件时使用;通过解析所述事件名称调用相应的接收组件;
16.sendername:可选项,支持配置多个组件,用于控制界面内允许发送此事件的组件列表;如果不配置,则界面内所有组件都能够发送此事件;
17.dispatch:用于控制需要响应事件的组件列表,包括指定响应事件的组件名称和响应方法名称。
18.优选地,所述客户端采用组件化开发方式;
19.组件作为界面的一部分,由程序框架自由组合在一起构成界面;
20.组件不封装事件响应内容。
21.根据本发明提供的一种股票客户端组件间的事件处理系统,包括:
22.模块m1:获取客户端界面的组件产生的事件;
23.模块m2:查找生产事件的组件所属界面对应的界面事件响应表,是否存在所述事件对应的事件响应项;若不存在,则结束流程;若存在,则触发模块m3;
24.模块m3:根据所述事件响应项,调用生产事件的组件所属界面的其它组件来响应所述事件。
25.优选地,在所述模块m3中,当允许生产事件的组件发送事件时,根据所述事件响应项,调用生产事件的组件所属界面的其它组件来响应所述事件。
26.优选地,所述界面事件响应表包括:
27.name:标识事件名称,组件发送事件时使用;通过解析所述事件名称调用相应的接收组件;
28.sendername:可选项,支持配置多个组件,用于控制界面内允许发送此事件的组件列表;如果不配置,则界面内所有组件都能够发送此事件;
29.dispatch:用于控制需要响应事件的组件列表,包括指定响应事件的组件名称和响应方法名称。
30.优选地,所述客户端采用组件化开发方式;
31.组件作为界面的一部分,由程序框架自由组合在一起构成界面;
32.组件不封装事件响应内容。
33.根据本发明提供的一种存储有计算机程序的计算机可读存储介质,所述计算机程序被处理器执行时实现股票客户端组件间的事件处理方法的步骤。
34.根据本发明提供的一种智能终端,包括所述的股票客户端组件间的事件处理系统,或者包括所述的存储有计算机程序的计算机可读存储介质。
35.与现有技术相比,本发明具有如下的有益效果:
36.1、本发明中组件不封装事件响应内容,使组件内部和事件响应脱离直接联系,从而降低了组件间的耦合关系,从而更适用于组件化开发客户端。
37.2、本发明使用事件配置模块和事件处理模块,让组件的事件处理不再是组件间直接调用方式,而是通过中间层进行处理,使事件处理形式更加灵活。
附图说明
38.通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
39.图1是本发明中一个优选实施例的流程步骤示意图。
40.图2是本发明中事件处理的流程步骤示意图。
41.图3是本发明的模块结构示意图。
具体实施方式
42.下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
43.在组件化开发的过程中,组件自身无法确定和哪些组件相互组合在一起,从而组件自身无法预先确定自身产生的事件被哪些组件响应。本发明为了解决组件无法在自身内部封装事件响应内容的问题,使用一种巧妙并且统一的方法实现组件间的低耦合事件处理机制。
44.为此,本发明使用一种类似qt信号和槽机制但又发明构思完全不同的方法,在组件产生事件时,发送事件名到事件处理模块中,并不指定具体的组件要响应这个事件。在事件配置模块中指定事件响应内容。在事件处理模块中处理事件流转。
45.进一步地,本发明的场景是股票客户端,该场景存在一个比较特殊的情况,即股票客户端是通过低耦合关系的组件来构成客户端界面的,每个组件可以随意组合。在同一个界面内,不同组件之间有较多的联动,同时又要求组件事件响应不在组件自身封装内。为此,本发明让组件的事件处理不再是组件间直接调用的方式,而是通过中间层进行处理,使事件处理形式更加灵活。
46.本发明提供的一种股票客户端组件间的事件处理方法,包括:
47.步骤s1:获取客户端界面的组件产生的事件;具体地,所述客户端采用组件化开发方式;组件作为界面的一部分,由程序框架自由组合在一起构成界面;组件不封装事件响应内容。
48.步骤s2:查找生产事件的组件所属界面对应的界面事件响应表,是否存在所述事件对应的事件响应项;若不存在,则结束流程;若存在,则触发步骤s3;所述界面事件响应表包括:name:标识事件名称,组件发送事件时使用;通过解析所述事件名称调用相应的接收组件;sendername:可选项,支持配置多个组件,用于控制界面内允许发送此事件的组件列表;如果不配置,则界面内所有组件都能够发送此事件;dispatch:用于控制需要响应事件的组件列表,包括指定响应事件的组件名称和响应方法名称。可以使用xml配置文件,来为界面配置对应的界面事件响应表。
49.步骤s3:根据所述事件响应项,调用生产事件的组件所属界面的其它组件来响应所述事件。在所述步骤s3中,当允许生产事件的组件发送事件时,根据所述事件响应项,调用生产事件的组件所属界面的其它组件来响应所述事件。
50.本实例适用于windows pc客户端程序,但不限于windows pc客户端程序使用本发
明所提供的方法。该方法可以由一个应用程序执行。
51.本发明还提供一种股票客户端组件间的事件处理系统,本领域技术人员可以通过执行所述股票客户端组件间的事件处理方法的步骤实现所述股票客户端组件间的事件处理系统,即可以将所述股票客户端组件间的事件处理系统理解为所述股票客户端组件间的事件处理方法的优选实施方式。
52.具体地,根据本发明提供的一种股票客户端组件间的事件处理系统,包括:
53.模块m1:获取客户端界面的组件产生的事件;所述客户端采用组件化开发方式;组件作为界面的一部分,由程序框架自由组合在一起构成界面;组件不封装事件响应内容。
54.模块m2:查找生产事件的组件所属界面对应的界面事件响应表,是否存在所述事件对应的事件响应项;若不存在,则结束流程;若存在,则触发模块m3;所述界面事件响应表包括:name:标识事件名称,组件发送事件时使用;通过解析所述事件名称调用相应的接收组件;sendername:可选项,支持配置多个组件,用于控制界面内允许发送此事件的组件列表;如果不配置,则界面内所有组件都能够发送此事件;dispatch:用于控制需要响应事件的组件列表,包括指定响应事件的组件名称和响应方法名称。
55.模块m3:根据所述事件响应项,调用生产事件的组件所属界面的其它组件来响应所述事件。在所述模块m3中,当允许生产事件的组件发送事件时,根据所述事件响应项,调用生产事件的组件所属界面的其它组件来响应所述事件。
56.所述模块m2、模块m3形成事件处理模块。事件配置模块用于对生产事件的组件所属界面对应的界面事件响应表进行预先配置,包括对界面事件响应表中的事件响应项进行配置,以及对是否允许生产事件的组件发送事件进行配置。
57.下面对本发明进行更为具体的说明。
58.具体地,如图1~图3所示,在股票客户端应用场景中,本发明的工作机制如下:
59.首先对事件配置模块进行说明。
60.所述事件配置模块是指在组件发送事件至事件处理模块前,先配置客户端界面事件响应表及在所述界面事件响应表中配置相应的事件响应项,其中事件和事件响应数量比例为:1:0~n。其中,n表示产生事件的组件所属界面中组件的总数量。
61.首先,假设客户端中存在界面g1和界面g2这两个界面,在所述两个界面中,都包含组件a、组件b、组件c,组件a产生事件e。在界面g1的界面事件响应表中配置了事件e,事件响应项内容是让组件b、组件c响应事件e;在界面g2的界面事件响应表中没有配置事件e。
62.接下来对事件处理模块进行说明。
63.然后,当组件a在界面g1产生事件e时,组件a将事件e发送至事件处理模块分析处理。
64.紧接着,事件处理模块查找界面g1对应的界面事件响应表,由于事件e在界面g1对应的界面事件响应表中有对应事件响应项,其中事件响应项的内容是让组件b、组件c响应事件e;当允许组件a发送事件e时,事件e得到了组件b、组件c的响应;若不允许发送,则流程结束。
65.再接着,当组件a在界面g2产生事件e时,组件a把事件e发送到事件处理模块分析处理。事件处理模块查找界面g2对应的界面事件响应表,由于事件e在界面g2界面事件响应表中未配置事件响应项,则流程结束。
66.当组件a的一行被选中时,组件a需要产生被选中行相应的股票作为一个组件事件,命名为onsetstock。组件a发送事件onsetstock到事件处理模块。也就是说,当组件的一行内容被选中时,组件需要产生被选中行相应的股票作为一个事件,命名为onsetstock。
67.事件处理模块收到事件onsetstock后,请求事件配置模块,获取事件产生时对应界面g1的界面事件响应表。判断界面事件响应表是否有onsetstock事件,如果存在,再执行sendername是否允许onsetstock事件。最后通过dispatch调用最终需要响应的组件。组件b、组件c被动接受调用事件响应。
68.以上本发明的工作机制描述中,客户端界面数量及界面包含组件数量不局限于本实施例。
69.本发明的事件配置模块用于配置事件响应关联。这个模块实现了事件项目定义功能,其中优选地定义一个事件名称,用于组件产生时事件时通知事件处理模块。还要定义信号的接收组件和方法,这里接收组件支持定义一个或多个。
70.本发明的事件处理模块用于事件发送和事件响应处理。该模块提供发送通信消息接口。发送组件把通信消息发送到通信处理模块,只需要提供通信消息名称。通信处理模块收到通信请求后,通过通信配置模块解析通信消息项目后,调用所有接收组件的相应方法。根据本发明提供的一种存储有计算机程序的计算机可读存储介质,所述计算机程序被处理器执行时实现股票客户端组件间的事件处理方法的步骤。
71.根据本发明提供的一种智能终端,包括所述的股票客户端组件间的事件处理系统,或者包括所述的存储有计算机程序的计算机可读存储介质。
72.本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统、装置及其各个模块以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统、装置及其各个模块以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同程序。所以,本发明提供的系统、装置及其各个模块可以被认为是一种硬件部件,而对其内包括的用于实现各种程序的模块也可以视为硬件部件内的结构;也可以将用于实现各种功能的模块视为既可以是实现方法的软件程序又可以是硬件部件内的结构。
73.以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本技术的实施例和实施例中的特征可以任意相互组合。
技术特征:
1.一种股票客户端组件间的事件处理方法,其特征在于,包括:步骤s1:获取客户端界面的组件产生的事件;步骤s2:查找生产事件的组件所属界面对应的界面事件响应表,是否存在所述事件对应的事件响应项;若不存在,则结束流程;若存在,则触发步骤s3;步骤s3:根据所述事件响应项,调用生产事件的组件所属界面的其它组件来响应所述事件。2.根据权利要求1所述的股票客户端组件间的事件处理方法,其特征在于,在所述步骤s3中,当允许生产事件的组件发送事件时,根据所述事件响应项,调用生产事件的组件所属界面的其它组件来响应所述事件。3.根据权利要求1所述的股票客户端组件间的事件处理方法,其特征在于,所述界面事件响应表包括:name:标识事件名称,组件发送事件时使用;通过解析所述事件名称调用相应的接收组件;sendername:可选项,支持配置多个组件,用于控制界面内允许发送此事件的组件列表;如果不配置,则界面内所有组件都能够发送此事件;dispatch:用于控制需要响应事件的组件列表,包括指定响应事件的组件名称和响应方法名称。4.根据权利要求1所述的股票客户端组件间的事件处理方法,其特征在于,所述客户端采用组件化开发方式;组件作为界面的一部分,由程序框架自由组合在一起构成界面;组件不封装事件响应内容。5.一种股票客户端组件间的事件处理系统,其特征在于,包括:模块m1:获取客户端界面的组件产生的事件;模块m2:查找生产事件的组件所属界面对应的界面事件响应表,是否存在所述事件对应的事件响应项;若不存在,则结束流程;若存在,则触发模块m3;模块m3:根据所述事件响应项,调用生产事件的组件所属界面的其它组件来响应所述事件。6.根据权利要求5所述的股票客户端组件间的事件处理系统,其特征在于,在所述模块m3中,当允许生产事件的组件发送事件时,根据所述事件响应项,调用生产事件的组件所属界面的其它组件来响应所述事件。7.根据权利要求5所述的股票客户端组件间的事件处理系统,其特征在于,所述界面事件响应表包括:name:标识事件名称,组件发送事件时使用;通过解析所述事件名称调用相应的接收组件;sendername:可选项,支持配置多个组件,用于控制界面内允许发送此事件的组件列表;如果不配置,则界面内所有组件都能够发送此事件;dispatch:用于控制需要响应事件的组件列表,包括指定响应事件的组件名称和响应方法名称。8.根据权利要求5所述的股票客户端组件间的事件处理系统,其特征在于,所述客户端
采用组件化开发方式;组件作为界面的一部分,由程序框架自由组合在一起构成界面;组件不封装事件响应内容。9.一种存储有计算机程序的计算机可读存储介质,其特征在于,所述计算机程序被处理器执行时实现权利要求1至4中任一项所述的股票客户端组件间的事件处理方法的步骤。10.一种智能终端,其特征在于,包括权利要求5至8中任一项所述的股票客户端组件间的事件处理系统,或者包括权利要求9所述的存储有计算机程序的计算机可读存储介质。
技术总结
本发明提供了一种股票客户端组件间的事件处理方法、系统、介质及终端,包括:获取客户端界面的组件产生的事件;查找生产事件的组件所属界面对应的界面事件响应表,是否存在所述事件对应的事件响应项;若不存在,则结束流程;若存在,则根据所述事件响应项,调用生产事件的组件所属界面的其它组件来响应所述事件。本发明中组件不封装事件响应内容,使组件内部和事件响应脱离直接联系,从而降低了组件间的耦合关系,从而更适用于组件化开发客户端。从而更适用于组件化开发客户端。从而更适用于组件化开发客户端。
技术研发人员:王骏 王岳军
受保护的技术使用者:上海九方云智能科技有限公司
技术研发日:2023.03.06
技术公布日:2023/7/22
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
