CN109343982A - 功能模块间的信息交互方法、装置、设备及存储介质 - Google Patents
功能模块间的信息交互方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN109343982A CN109343982A CN201811162255.2A CN201811162255A CN109343982A CN 109343982 A CN109343982 A CN 109343982A CN 201811162255 A CN201811162255 A CN 201811162255A CN 109343982 A CN109343982 A CN 109343982A
- Authority
- CN
- China
- Prior art keywords
- functional module
- function
- information
- interactive
- cache
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明实施例公开了一种功能模块间的信息交互方法、装置、设备及存储介质。该方法包括:第一功能模块获取交互信息,并调用对象获取函数,根据交互信息标识从底层功能模块中的缓存对象变量中确定与交互信息标识相对应的第二功能模块的目标交互协议对象,并以交互信息为函数输入参数,调用目标交互协议对象中的信息交互函数,将交互信息传输至第二功能模块;信息交互函数以第二功能模块中的信息交互对象继承交互接口协议而获得,交互接口协议为底层功能模块中预定义的,且各第二功能模块的交互接口协议相同。上述方案减少各个功能模块之间的依赖和直接耦合关系,提高了功能模块之间的独立性,并且实现了多个功能模块之间可以信息交互的技术效果。
Description
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种功能模块间的信息交互方法、装置、设备及存储介质。
背景技术
为了提高应用软件的开发效率,通常是以功能模块化的方式进行软件开发,即将应用软件中的各个功能划分为独立的功能模块进行软件开发。例如,将对弹幕消息进行接收、解析及发送等处理的功能划分为弹幕模块,将对弹幕消息进行过滤及运算等数据处理的功能划分为数据处理模块,将对弹幕消息进行渲染及显示等处理的功能划分为显示模块等。
基于Android系统开发的应用软件中各个功能模块之间的信息交互,是通过功能模块之间的引用关系来实现对象的获取,具体的实现方式是修改功能模块中配置文件build.gradle的模块依赖属性dependence。例如,在显示模块对应的模块依赖属性dependence中,通过添加弹幕模块danmu的依赖关系添加语句compile danmu来实现显示模块对弹幕模块的引用。上述各个功能模块之间的信息交互方式会导致两个功能模块之间有依赖关系,该依赖关系的存在不利于功能模块之间的解耦,会制约这两个功能模块的独立开发。
目前,多个独立功能模块之间进行信息交互,虽然采用了设置底层功能模块的方式,减少了各个功能模块之间的直接耦合性,但是底层功能模块中一次只能缓存一个功能模块中的一个接口对象,无法适用于多个独立模块之间的信息交互。
发明内容
本发明实施例提供一种功能模块间的信息交互方法、装置、设备及存储介质,以实现基于Android系统的应用软件开发中,多个独立功能模块之间的信息交互,减少各个功能模块之间的依赖关系与直接耦合关系,提高功能模块独立性的技术效果。
第一方面,本发明实施例提供了一种功能模块间的信息交互方法,包括:
第一功能模块获取交互信息;其中,所述交互信息包括交互信息标识;
所述第一功能模块调用对象获取函数,根据所述交互信息标识从底层功能模块中的缓存对象变量中确定与所述交互信息标识相对应的第二功能模块的目标交互协议对象;其中,所述第一功能模块和所述第二功能模块为所述底层功能模块的顶层功能模块,所述对象获取函数为所述底层功能模块中的预定义函数,且具有私有权限修饰符;所述缓存对象变量中存储了至少两个交互协议对象;
所述第一功能模块以所述交互信息为函数输入参数,调用所述目标交互协议对象中的信息交互函数,将所述交互信息传输至所述第二功能模块;其中,所述信息交互函数根据所述第二功能模块中的信息交互对象继承交互接口协议而获得,所述交互接口协议为所述底层功能模块中预先定义的交互协议,且各第二功能模块的交互协议相同。
第二方面,本发明实施例还提供了一种功能模块间的信息交互装置,包括第一功能模块、第二功能模块和底层功能模块,其中,所述第一功能模块包括:
获取交互信息单元,用于获取交互信息;其中,所述交互信息包括交互信息标识;
获取目标交互协议对象单元,用于调用对象获取函数,根据所述交互信息标识从底层功能模块中的缓存对象变量中确定与所述交互信息标识相对应的第二功能模块的目标交互协议对象;其中,所述第一功能模块和所述第二功能模块为所述底层功能模块的顶层功能模块,所述对象获取函数为所述底层功能模块中的预定义函数,且具有私有权限修饰符;所述缓存对象变量中存储了至少两个交互协议对象;
信息交互单元,用于以所述交互信息为函数输入参数,调用所述目标交互协议对象中的信息交互函数,将所述交互信息传输至所述第二功能模块;其中,所述信息交互函数根据所述第二功能模块中的信息交互对象继承交互接口协议而获得,所述交互接口协议为所述底层功能模块中预先定义的交互协议,且各第二功能模块的交互协议相同。
第三方面,本发明实施例还提供了一种设备,所述设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明任意实施例所提供的功能模块间的信息交互方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现本发明任意实施例所提供的功能模块间的信息交互方法。
本发明实施例通过第一功能模块获取交互信息,并调用对象获取函数,根据交互信息标识从底层功能模块中的缓存对象变量中确定与交互信息标识相对应的第二功能模块的目标交互协议对象;第一功能模块以交互信息为函数输入参数,调用目标交互协议对象中的信息交互函数,将交互信息传输至第二功能模块,解决了现有技术中底层功能模块只能缓存一个功能模块中的一个接口对象,无法适用于多个独立模块之间的信息交互的技术问题,实现了底层功能模块可以缓存至少一个独立功能模块中的接口对象,从而使多个独立功能模块之间可以信息交互、提高各个功能模块独立性的技术效果。
附图说明
图1为本发明实施例一提供的一种功能模块间的信息交互方法的流程图;
图2为本发明实施例二提供的一种功能模块间的信息交互装置的结构示意图;
图3为本发明实施例三提供的一种设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1为本发明实施例一提供的一种功能模块间的信息交互方法的流程图,本实施例可适用于至少两个独立的功能模块进行信息交互的情况,尤其是可以用于基于Android系统的应用软件开发中各个功能模块进行信息交互的场景,同时也可以用于其他需要利用功能模块进行信息交互的应用场景中。该方法可以由功能模块间的信息交互装置来执行,该装置可以由软件和/或硬件的方式实现,该装置可以集成在安装有内部包含多个独立功能模块的应用软件的设备中,例如典型的是用户终端设备,例如手机、平板电脑或台式电脑等。参见图1,本实施例的方法具体包括如下步骤:
S110、第一功能模块获取交互信息;其中,所述交互信息包括交互信息标识。
其中,功能模块是指实现应用软件开发中某些特定功能的模块。第一功能模块可以是但不限于是弹幕模块、数据处理模块和显示模块中的任一模块。交互信息是指第一功能模块与第二功能模块之间进行交互的信息。第二功能模块也可以是但不限于是弹幕模块、数据处理模块和显示模块中的任一模块。
示例性的,若第一功能模块为弹幕模块,第二功能模块为显示模块,则弹幕模块获取的交互信息可以为弹幕消息,以便弹幕模块可以将获取的弹幕消息传输至显示模块中进行显示处理。本实施例中的交互信息可以是弹幕消息或者诸如数据获取请求和数据处理结果反馈等其他需要进行交互的消息。
具体地,第一功能模块可以通过接收服务器下发的信息来获取交互信息,也可以是自身生成的交互信息,其中,交互信息中还可以包括交互信息标识,本实施例对交互信息的获取方式不做限定。
S120、第一功能模块调用对象获取函数,根据交互信息标识从底层功能模块中的缓存对象变量中确定与交互信息标识相对应的第二功能模块的目标交互协议对象。
其中,第一功能模块和第二功能模块为底层功能模块的顶层功能模块,对象获取函数为底层功能模块中的预定义函数,且具有私有权限修饰符;缓存对象变量中存储了至少两个交互协议对象。第二功能模块的数量可以有多个,可选的,存在三个第二功能模块、五个第二功能模块。
具体地,底层功能模块是用于桥接第一功能模块和各第二功能模块的模块,且其位于软件开发架构的底层,以使第一功能模块和各第二功能模块可以通过底层功能模块进行信息交互。这里所提及的底层功能模块是相对于第一功能模块和各第二功能模块所在的软件开发架构层次而言,即第一功能模块和第二功能模块在软件开发架构的上一层级,底层功能模块在上一层级的下一层级。第二功能模块从数量上来说可以是多个,可选的,第二功能模块数量为三个,每一个第二功能模块的具有相同的交互接口协议,相应的底层功能模块中的存储的交互协议对象可以具有相同的数据类型,交互协议对象的数据类型可以是map型,可选的,交互协议对象的数据类型为map(string,IFuncModule),string表示字符串常量信息,通过使用不同的字符串常量来区分不同的接口对象,可以理解为交互信息标识即键。IFuncModule表示与字符串常量对应的协议对象,也就是的接口对象信息,当字符串常量不同时,虽然接口协议相同,但是接口对象信息也不相同。对象获取函数是一个存放于底层功能模块中的预定义函数。对象获取函数的修饰符为私有权限修饰符private,以便第一功能模块可以直接调用底层功能模块中的对象获取函数。缓存对象变量位于底层功能模块中,用来存储交互协议对象。目标交互协议对象为根据交互信息中的交互信息标识从底层功能模块中确定到的交互协议对象。
具体地,第一功能模块通过调用底层功能模块中的对象获取函数,并根据交互信息中包括的交互信息标识从底层功能模块中的缓存对象变量中,确定与交互信息标识相对应的第二功能模块的目标交互协议对象。若第二功能模块的数量为三个,第一功能模块获取的目标交互协议对象可能是与三个第二功能模块中某一个第二功能模块中用于进行信息交互的对象(即信息交互对象),从而第一功能模块可以通过目标交互协议对象来实现与其中一个第二功能模块的信息交互。也就是说,底层功能模块中的信息交互协议对象可以有多个,且数据类型可以是map型,可以根据交互信息标识从确定与其相对应的map,即交互协议对象,将与交互信息标识相同交互协议对象中作为目标交互协议,进而得到与目标交互协议相对应的目标第二功能模块。
在本实施例中,可以预先将与交互协议对象相对应的信息交互协议对象存储至底层功能模块中,其中,信息交互协议对象是各第二功能模块中的信息交互对象经过一系列处理得到的对象。第一功能模块可以通过调用对象获取函数,根据交互信息标识从底层功能模块中筛选出与交互信息标识相同的信息交互协议对象,并将获取的信息交互协议对象确定为目标交互协议对象。由于信息交互协议对象是根据第二功能模块中的信息交互对象生成的,从而目标交互协议对象也是根据第二功能模块中的信息交互对象生成的,以便第一功能模块可以通过目标交互协议对象来实现与第二功能模块的信息交互,同时可以确定信息交互协议的对象的个数可以与第二功能模块的个数相同。
可选的,第一功能模块和各第二功能模块对应的配置文件的模块依赖属性中均包含底层功能模块的依赖关系添加语句。
其中,配置文件是软件开发时功能模块的配置说明性文件。
具体地,在第一功能模块对应的配置文件build.gradle的模块依赖属性dependence中,通过添加底层功能模块的依赖关系添加语句compile basemodule来实现第一功能模块对底层功能模块的引用。同理,在各个第二功能模块对应的配置文件build.gradle的模块依赖属性dependence中,通过添加底层功能模块的依赖关系添加语句compile basemodule来实现各个第二功能模块对底层功能模块的引用,从而本实施例根据一个底层功能模块构建了第一功能模块和各第二功能模块之间的桥接关系。
可选的,在S120之前,还包括:
各第二功能模块中的信息交互对象分别继承交互接口协议,获得至少一个信息交互协议对象;各第二功能模块调用对象缓存函数,对至少一个信息交互协议对象进行缓存,获得至少一个缓存对象,至少一个缓存对象分别存储在缓存对象变量中;其中,对象缓存函数为底层功能模块中的预定义函数,且具有公有权限修饰符。
其中,各第二功能模块可以理解为第二功能模块的数量有多个,每一个第二功能模块中都可能存在信息交互对象,且每一个信息交互对象可以分别继承交互接口协议,可以得到至少一个数据类型相同的信息交互协议对象。交互接口协议是指预先定义的用于进行信息交互的接口,各个第二功能模块的交互接口协议相同,其中交互接口协议包含预先定义的交互函数,即信息交互函数。对象缓存函数是预先定义的,用于缓存对象的函数。
本发明实施例中,对象缓存函数用于,将各个第二功能模块中的信息交互协议对象分别缓存至底层功能模块的缓存对象中。示例性的,第二功能模块的数量有三个,缓存对象函数可以分别将三个第二功能模块中的信息交互协议缓存至底层功能模块中,得到三个缓存对象。
具体地,底层功能模块中预先定义交互接口协议IFuncModule,以使第一功能模块与各个第二功能模块根据该交互接口协议进行交互,需要说明的是,各第二功能模块具备相同的交互接口协议,为了确保底层功能模块可以存储各个交互协议对象,以及根据交互信息标识可以确定目标交互协议对象,可以将交互接口协议中的数据类型设置为map(string,IFuncModule)。各个第二功能模块中的各个信息交互对象继承相同的交互接口协议,不同的string常量可以表示不同的接口对象,即可以区分不同的第二功能模块,IFuncModule表示各个第二功能模块中的信息交互对象继承相同交互接口协议时,不同的string常量,对应的接口对象信息也不相同。
本实施例中的第二功能模块可以将信息交互对象继承底层功能模块的交互接口协议,从而获取接口类型的信息交互协议对象。当第二功能模块获取信息交互协议对象时,可以自动触发底层功能模块中的对象缓存函数的执行,以将信息交互协议对象存储至底层功能模块。可以理解为各第二功能模块中的信息交互对象继承底层功能模块中的交互接口协议,以map型数据存储到底层功能模块中的缓存对象变量中。
可选的,对象缓存函数通过如下步骤实现对信息交互协议对象进行缓存,获得缓存对象的功能:底层功能模块分别判断对象缓存函数的输入参数是否为对象缓存函数的目标输入参数;若是,则通过当前对象关键字,将信息交互协议对象缓存至缓存对象变量,获得缓存对象,其中,缓存对象变量为底层功能模块预先定义的对象变量,用于存储至少一个缓存对象;缓存对象变量具有私有权限修饰符。
其中,本实施例的底层功能模块中预先定义了一个缓存对象变量,以缓存各第二功能模块中的信息交互协议对象至缓存对象变量中。示例性的,将缓存对象变量mIFuncModule定义为:private void addIFuncModule(String key,IFuncModulemIFuncModule),其中缓存对象变量具有私有权限修饰符Private,以保证只允许底层功能模块中的调用类进行访问,从而避免数据篡改。目标输入参数是指对象缓存函数的合法参数。
具体地,各个第二功能模块可以调用对象缓存函数后,底层功能模块具体来执行对象缓存函数。底层功能模块可以从对象缓存函数的函数输入参数fun中获取到需要缓存的对象。之后,通过判定fun==null来确定对象缓存函数的输入参数是否为目标输入参数。若对象缓存函数的输入参数为目标输入参数,则表明可以进行缓存,获得了缓存对象。若对象缓存函数的输入参数不是目标输入参数,则表明无法进行缓存,此时可以直接调用return来终止缓存流程。本实施例中通过判断对象缓存函数的输入参数是否为目标输入参数,可以提高程序的健壮性。
可选的,各第二功能模块中的信息交互对象分别继承交互接口协议,获得至少一个信息交互协议对象,包括:各第二功能模块分别通过信息交互对象,调用协议继承关键字,继承交互接口协议,获得信息交互协议对象,信息交互协议对象中包含信息交互函数。
其中,协议继承关键字是Java语言中规定的进行接口协议继承的关键字。
具体地,各第二功能模块可以分别通过协议继承关键字implement,对底层功能模块中的交互接口协议IFuncModule进行继承,从而各第二功能模块可以获得信息交互协议对象。由于交互接口协议中包含信息交互函数,从而第二功能模块通过继承该交互接口协议,获得的信息交互协议对象中也包含该信息交互函数。
可选的,对象获取函数通过如下步骤实现从底层功能模块中获得与第二功能模块对应的目标交互协议对象的功能:
底层功能模块判断与交互信息标识相对应的目标缓存对象是否为空对象;若否,则调用函数值返回函数,将目标缓存对象中的信息交互协议对象发送至第一功能模块,作为目标交互协议对象。
具体地,底层功能模块中预先设置至少一个缓存对象,用于存储从各个第二功能模块中获取的信息交互协议对象。在第一功能模块调用底层功能模块中的对象获取函数时,底层功能模块根据交互信息标识,从缓存对象变量中存储的至少一个缓存对象中确定目标缓存对象,底层功能模块可以通过判断目标缓存对象是否为空对象(null对象)来确定缓存对象中是否存储有信息交互协议对象。若缓存对象为非空对象,则表明缓存对象中存储有信息交互协议对象,此时底层功能模块通过直接调用函数值返回函数Return,将目标缓存对象中的信息交互协议对象发送至第一功能模块中,即将目标缓存对象中的信息交互协议对象确定为第一功能模块中的目标交互协议对象。若缓存对象为空对象,则表明目标缓存对象中还没有存储信息交互协议对象,此时可以暂停交互流程,直至目标缓存对象中存储有从第二功能模块获取的信息交互协议对象时,继续进行功能模块的交互流程。
本实施例在第一功能模块调用对象获取函数,来获取底层功能模块中预先存储的信息交互协议对象时,对象获取函数可以定义为:private IFuncModule getIFuncModule(),当缓存对象变量mIFuncModule不是一个null对象,则可以直接通过调用returnmIFuncModule将缓存对象变量中的信息交互协议对象发送至第一功能模块,以使第一功能模块获取目标交互协议对象。
S130、第一功能模块以交互信息为函数输入参数,调用目标交互协议对象中的信息交互函数,将交互信息传输至第二功能模块。
其中,信息交互函数根据第二功能模块中的信息交互对象继承交互接口协议而获得,交互接口协议为底层功能模块中预先定义的交互协议,且各第二功能模块的交互协议相同。
具体地,根据上述说明可知,第一功能模块中的目标交互协议对象是通过第二功能模块中的信息交互对象,继承交互接口协议而获得的,而信息交互协议对象中包含信息交互函数,从而目标交互协议对象也包含信息交互函数。示例性的,根据交互接口协议IFuncModule中信息交互函数onEvent的定义可知,需要将交互信息预先解析为一个字符串String类型的eventType数据和一个对象Object类型的eventMsg数据,其中eventType为交互信息标识,eventMsg为交互信息体,从而将交互信息作为信息交互函数中的函数输入参数,通过调用目标交互协议对象中的信息交互函数onEvent(Stirng eventType,ObjecteventMsg),将交互信息传输至第二功能模块中,从而基于底层功能模块,完成了第一功能模块和第二功能模块之间的信息交互。
本发明实施例通过第一功能模块获取交互信息,并调用对象获取函数,根据交互信息标识从底层功能模块中的缓存对象变量中确定与交互信息标识相对应的第二功能模块的目标交互协议对象;第一功能模块以交互信息为函数输入参数,调用目标交互协议对象中的信息交互函数,将交互信息传输至第二功能模块,解决了现有技术中底层功能模块只能缓存一个功能模块中的一个接口对象,无法适用于多个独立模块之间的信息交互的技术问题,实现了底层功能模块可以缓存至少一个独立功能模块中的接口对象,从而使多个独立功能模块之间可以信息交互、提高各个功能模块独立性的技术效果。
以下是本发明实施例提供的功能模块间的信息交互装置的实施例,该装置与上述各实施例的功能模块间的信息交互方法属于同一个发明构思,在功能模块间的信息交互装置的实施例中未详尽描述的细节内容,可以参考上述功能模块间的信息交互方法的实施例。
实施例二
图2为本发明实施例二提供的一种功能模块间的信息交互装置的结构示意图。参见图2,该功能模块间的信息交互装置包括:第一功能模块210、第二功能模块220和底层功能模块230,其中,第一功能模块210包括:获取交互信息单元211、获取目标交互协议对象单元212和信息交互单元213。
其中,获取交互信息单元211,用于获取交互信息;其中,所述交互信息包括交互信息标识;
获取目标交互协议对象单元212,用于调用对象获取函数,根据所述交互信息标识从底层功能模块中的缓存对象变量中确定与所述交互信息标识相对应的第二功能模块的目标交互协议对象;其中,所述第一功能模块和所述第二功能模块为所述底层功能模块的顶层功能模块,所述对象获取函数为所述底层功能模块中的预定义函数,且具有私有权限修饰符;所述缓存对象变量中存储了至少两个交互协议对象;
信息交互单元213,用于以所述交互信息为函数输入参数,调用所述目标交互协议对象中的信息交互函数,将所述交互信息传输至所述第二功能模块;其中,所述信息交互函数根据所述第二功能模块中的信息交互对象继承交互接口协议而获得,所述交互接口协议为所述底层功能模块中预先定义的交互协议,且各第二功能模块的交互协议相同。
可选的,第二功能模块220包括:
信息交互协议对象获取单元:用于在第一功能模块调用对象获取函数之前,各第二功能模块中的信息交互对象分别继承交互接口协议,获得至少一个信息交互协议对象;
对象缓存函数调用单元,用于调用对象缓存函数,对所述至少一个信息交互协议对象进行缓存,获得至少一个缓存对象,所述至少一个缓存对象分别存储在所述缓存对象变量中;其中,所述对象缓存函数为所述底层功能模块中的预定义函数,且具有公有权限修饰符。
可选的,底层功能模块230包括对象缓存函数执行单元,用于通过如下步骤实现对信息交互协议对象进行缓存,获得缓存对象的功能:
判断所述对象缓存函数的输入参数是否为所述对象缓存函数的目标输入参数;
若是,则通过当前对象关键字,将所述信息交互协议对象缓存至缓存对象变量,获得所述缓存对象,其中,所述缓存对象变量为所述底层功能模块预先定义的对象变量,用于存储至少一个缓存对象;所述缓存对象变量具有私有权限修饰符。
可选的,信息交互协议对象获取单元,具体用于:
所述各第二功能模块分别通过所述信息交互对象,调用协议继承关键字,继承所述交互接口协议,获得所述信息交互协议对象,所述信息交互协议对象中包含所述信息交互函数。
可选的,底层功能模块230包括接口定义单元,用于:在所述第二功能模块中的信息交互对象继承所述交互接口协议,获得信息交互协议对象之前,定义所述交互接口协议及所述交互接口协议中的所述信息交互函数,所述交互接口协议为具有私有权限修饰符的接口类型。
可选的,第一功能模块和各第二功能模块对应的配置文件的模块依赖属性中均包含底层功能模块的依赖关系添加语句。
可选的,底层功能模块230包括对象获取函数执行单元,用于:
通过如下步骤实现从底层功能模块中获得第二功能模块对应的目标交互协议对象的功能:
判断与所述交互信息标识相对应的目标缓存对象是否为空对象;
若否,则调用函数值返回函数,将所述目标缓存对象中的所述信息交互协议对象发送至所述第一功能模块,作为所述目标交互协议对象。
本发明实施例的技术方案通过第一功能模块获取交互信息,并调用对象获取函数,根据交互信息标识从底层功能模块中的缓存对象变量中确定与交互信息标识相对应的第二功能模块的目标交互协议对象;第一功能模块以交互信息为函数输入参数,调用目标交互协议对象中的信息交互函数,将交互信息传输至第二功能模块,解决了现有技术中底层功能模块只能缓存一个功能模块中的一个接口对象,无法适用于多个独立模块之间的信息交互的技术问题,实现了底层功能模块可以缓存至少一个独立功能模块中的接口对象,从而使多个独立功能模块之间可以信息交互、提高各个功能模块独立性的技术效果。
本发明实施例所提供的功能模块间的信息交互装置可执行本发明任意实施例所提供的功能模块间的信息交互方法,具备执行功能模块间的信息交互方法相应的功能模块和有益效果。
值得注意的是,上述弹幕消息传输装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
实施例三
参见图3,本实施例提供了一种设备300,其包括:一个或多个处理器320;存储装置310,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器320执行,使得一个或多个处理器320实现本发明实施例所提供的功能模块间的信息交互方法,包括:
第一功能模块获取交互信息;其中,所述交互信息包括交互信息标识;
所述第一功能模块调用对象获取函数,根据所述交互信息标识从底层功能模块中的缓存对象变量中确定与所述交互信息标识相对应的第二功能模块的目标交互协议对象;其中,所述第一功能模块和所述第二功能模块为所述底层功能模块的顶层功能模块,所述对象获取函数为所述底层功能模块中的预定义函数,且具有私有权限修饰符;所述缓存对象变量中存储了至少两个交互协议对象;
所述第一功能模块以所述交互信息为函数输入参数,调用所述目标交互协议对象中的信息交互函数,将所述交互信息传输至所述第二功能模块;其中,所述信息交互函数根据所述第二功能模块中的信息交互对象继承交互接口协议而获得,所述交互接口协议为所述底层功能模块中预先定义的交互协议,且各第二功能模块的交互协议相同。
当然,本领域技术人员可以理解,处理器320还可以实现本发明任意实施例所提供的功能模块间的信息交互方法的技术方案。
图3显示的设备300仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图3所示,该设备300包括处理器320、存储装置310、输入装置330和输出装置340;设备中处理器320的数量可以是一个或多个,图3中以一个处理器320为例;设备中的处理器320、存储装置310、输入装置330和输出装置340可以通过总线或其他方式连接,图3中以通过总线350连接为例。
存储装置310作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的功能模块间的信息交互方法对应的程序指令/模块(例如,功能模块间的信息交互装置中的第一功能模块210、第二功能模块220和底层功能模块230,其中,第一功能模块210包括交互信息获取单元211、目标交互协议对象获取单元212和交互单元213)。
存储装置310可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储装置310可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储装置310可进一步包括相对于处理器320远程设置的存储器,这些远程存储器可以通过网络连接至设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置330可用于接收输入的数字或字符信息,以及产生与设备的用户设置以及功能控制有关的键信号输入。输出装置340可包括显示屏等显示设备。
实施例四
本实施例提供一种包含计算机可执行指令的存储介质,计算机可执行指令在由计算机处理器执行时用于执行一种功能模块间的信息交互方法,该方法包括:
第一功能模块获取交互信息;其中,交互信息包括交互信息标识;
第一功能模块调用对象获取函数,根据交互信息标识从底层功能模块中的缓存对象变量中确定与交互信息标识相对应的第二功能模块的目标交互协议对象;其中,第一功能模块和第二功能模块为底层功能模块的顶层功能模块,对象获取函数为底层功能模块中的预定义函数,且具有私有权限修饰符;缓存对象变量中存储了至少两个交互协议对象;
第一功能模块以交互信息为函数输入参数,调用目标交互协议对象中的信息交互函数,将交互信息传输至第二功能模块;其中,信息交互函数根据第二功能模块中的信息交互对象继承交互接口协议而获得,交互接口协议为底层功能模块中预先定义的交互协议,且各第二功能模块的交互协议相同。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上的方法操作,还可以执行本发明任意实施例所提供的功能模块间的信息交互方法中的相关操作。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所提供的功能模块间的信息交互方法。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (10)
1.一种功能模块间的信息交互方法,其特征在于,包括:
第一功能模块获取交互信息;其中,所述交互信息包括交互信息标识;
所述第一功能模块调用对象获取函数,根据所述交互信息标识从底层功能模块中的缓存对象变量中确定与所述交互信息标识相对应的第二功能模块的目标交互协议对象;其中,所述第一功能模块和所述第二功能模块为所述底层功能模块的顶层功能模块,所述对象获取函数为所述底层功能模块中的预定义函数,且具有私有权限修饰符;所述缓存对象变量中存储了至少两个交互协议对象;
所述第一功能模块以所述交互信息为函数输入参数,调用所述目标交互协议对象中的信息交互函数,将所述交互信息传输至所述第二功能模块;其中,所述信息交互函数根据所述第二功能模块中的信息交互对象继承交互接口协议而获得,所述交互接口协议为所述底层功能模块中预先定义的交互协议,且各第二功能模块的交互协议相同。
2.根据权利要求1所述的方法,其特征在于,在所述第一功能模块调用对象获取函数之前,还包括:
各第二功能模块中的信息交互对象分别继承交互接口协议,获得至少一个信息交互协议对象;
各第二功能模块调用对象缓存函数,对所述至少一个信息交互协议对象进行缓存,获得至少一个缓存对象,所述至少一个缓存对象分别存储在所述缓存对象变量中;
其中,所述对象缓存函数为所述底层功能模块中的预定义函数,且具有公有权限修饰符。
3.根据权利要求2所述的方法,其特征在于,所述对象缓存函数通过如下步骤实现所述对所述信息交互协议对象进行缓存,获得所述缓存对象的功能:
所述底层功能模块分别判断所述对象缓存函数的输入参数是否为所述对象缓存函数的目标输入参数;
若是,则通过当前对象关键字,将所述信息交互协议对象缓存至缓存对象变量,获得所述缓存对象,其中,所述缓存对象变量为所述底层功能模块预先定义的对象变量,用于存储至少一个缓存对象;所述缓存对象变量具有私有权限修饰符。
4.根据权利要求2所述的方法,其特征在于,所述各第二功能模块中的信息交互对象分别继承交互接口协议,获得至少一个信息交互协议对象,包括:
所述各第二功能模块分别通过所述信息交互对象,调用协议继承关键字,继承所述交互接口协议,获得所述信息交互协议对象,所述信息交互协议对象中包含所述信息交互函数。
5.根据权利要求4所述的方法,其特征在于,在所述第二功能模块中的信息交互对象继承所述交互接口协议,获得信息交互协议对象之前,还包括:
所述底层功能模块定义所述交互接口协议及所述交互接口协议中的所述信息交互函数,所述交互接口协议为具有公有权限修饰符的接口类型,所述信息交互函数的函数输入参数类型分别为字符串类型和对象类型。
6.根据权利要求1所述的方法,其特征在于,所述第一功能模块和各第二功能模块对应的配置文件的模块依赖属性中均包含所述底层功能模块的依赖关系添加语句。
7.根据权利要求3所述的方法,其特征在于,所述对象获取函数通过如下步骤实现所述从底层功能模块中获得与第二功能模块对应的目标交互协议对象的功能:
所述底层功能模块判断与所述交互信息标识相对应的目标缓存对象是否为空对象;
若否,则调用函数值返回函数,将所述目标缓存对象中的所述信息交互协议对象发送至所述第一功能模块,作为所述目标交互协议对象。
8.一种功能模块间的信息交互装置,其特征在于,包括:第一功能模块、第二功能模块和底层功能模块,其中,所述第一功能模块包括:
获取交互信息单元,用于获取交互信息;其中,所述交互信息包括交互信息标识;
获取目标交互协议对象单元,用于调用对象获取函数,根据所述交互信息标识从底层功能模块中的缓存对象变量中确定与所述交互信息标识相对应的第二功能模块的目标交互协议对象;其中,所述第一功能模块和所述第二功能模块为所述底层功能模块的顶层功能模块,所述对象获取函数为所述底层功能模块中的预定义函数,且具有私有权限修饰符;所述缓存对象变量中存储了至少两个交互协议对象;
信息交互单元,用于以所述交互信息为函数输入参数,调用所述目标交互协议对象中的信息交互函数,将所述交互信息传输至所述第二功能模块;其中,所述信息交互函数根据所述第二功能模块中的信息交互对象继承交互接口协议而获得,所述交互接口协议为所述底层功能模块中预先定义的交互协议,且各第二功能模块的交互协议相同。
9.一种设备,其特征在于,所述设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7中任一所述的功能模块间的信息交互方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-7中任一所述的功能模块间的信息交互方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811162255.2A CN109343982A (zh) | 2018-09-30 | 2018-09-30 | 功能模块间的信息交互方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811162255.2A CN109343982A (zh) | 2018-09-30 | 2018-09-30 | 功能模块间的信息交互方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109343982A true CN109343982A (zh) | 2019-02-15 |
Family
ID=65308134
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811162255.2A Pending CN109343982A (zh) | 2018-09-30 | 2018-09-30 | 功能模块间的信息交互方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109343982A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111488286A (zh) * | 2020-04-15 | 2020-08-04 | 腾讯音乐娱乐科技(深圳)有限公司 | 一种Android模块独立开发的方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103425225A (zh) * | 2012-05-16 | 2013-12-04 | 腾讯科技(深圳)有限公司 | 便携数据设备操作系统中的应用程序装置及其运行方法 |
CN104020929B (zh) * | 2014-06-12 | 2017-05-17 | 腾讯科技(深圳)有限公司 | 一种应用消息展示方法、装置及终端设备 |
CN107203419A (zh) * | 2016-03-17 | 2017-09-26 | 阿里巴巴集团控股有限公司 | 应用程序中的模块间调用方法、装置及系统 |
CN107517188A (zh) * | 2016-06-16 | 2017-12-26 | 大唐软件技术股份有限公司 | 一种基于安卓系统的数据处理方法和装置 |
-
2018
- 2018-09-30 CN CN201811162255.2A patent/CN109343982A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103425225A (zh) * | 2012-05-16 | 2013-12-04 | 腾讯科技(深圳)有限公司 | 便携数据设备操作系统中的应用程序装置及其运行方法 |
CN104020929B (zh) * | 2014-06-12 | 2017-05-17 | 腾讯科技(深圳)有限公司 | 一种应用消息展示方法、装置及终端设备 |
CN107203419A (zh) * | 2016-03-17 | 2017-09-26 | 阿里巴巴集团控股有限公司 | 应用程序中的模块间调用方法、装置及系统 |
CN107517188A (zh) * | 2016-06-16 | 2017-12-26 | 大唐软件技术股份有限公司 | 一种基于安卓系统的数据处理方法和装置 |
Non-Patent Citations (1)
Title |
---|
SNSPORTS: "android module解耦组件化总体概述", 《简书网,HTTPS://WWW.JIANSHU.COM/P/E03255A23083》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111488286A (zh) * | 2020-04-15 | 2020-08-04 | 腾讯音乐娱乐科技(深圳)有限公司 | 一种Android模块独立开发的方法及装置 |
CN111488286B (zh) * | 2020-04-15 | 2024-02-09 | 腾讯音乐娱乐科技(深圳)有限公司 | 一种Android模块独立开发的方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109032815A (zh) | 功能模块间的信息交互方法、装置、设备及存储介质 | |
KR102211374B1 (ko) | 리스크 정보를 출력하고 리스크 정보를 구축하기 위한 방법 및 디바이스 | |
US20200133938A1 (en) | Asset management method and apparatus, and electronic device | |
CN110249307A (zh) | 用于在区块链上执行原生合约的系统和方法 | |
CN109343983A (zh) | 功能模块间的信息交互方法、装置、设备及存储介质 | |
JP2021511560A (ja) | ブロックチェーンに基づいてトランザクションを実行するための方法、装置、および電子デバイス | |
JP2021512380A (ja) | 資産管理方法および装置、ならびに電子デバイス | |
CN104219316A (zh) | 一种分布式系统中的调用请求处理方法及装置 | |
CN111711635B (zh) | 防火墙开墙方法、装置、计算机设备及存储介质 | |
CN103685304A (zh) | 一种共享session信息的方法和系统 | |
CN108023808A (zh) | 应用程序中的消息分发方法及装置 | |
CN105765533B (zh) | 用于固件虚拟化的方法和装置 | |
CN109388388A (zh) | 功能模块间的信息交互方法、装置、设备及存储介质 | |
CN105468707A (zh) | 一种基于缓存的数据处理方法及装置 | |
US20210312472A1 (en) | Method and system for prediction of smart contract violation using dynamic state space creation | |
CN103514395A (zh) | 插件权限控制方法及系统 | |
CN110187986B (zh) | 一种命令管理方法、系统、装置及计算机可读存储介质 | |
CN115002099A (zh) | 基于rpa和ai实现ia的人机交互式文件处理方法和装置 | |
CN109343982A (zh) | 功能模块间的信息交互方法、装置、设备及存储介质 | |
CN111294377B (zh) | 一种依赖关系的网络请求发送方法、终端装置及存储介质 | |
CN110324722A (zh) | 直播间中数据的获取方法、装置、设备和存储介质 | |
CN109144520B (zh) | Android中不同对象间的信息交互方法、装置、设备和存储介质 | |
CN113992494B (zh) | 一种云平台创建堡垒机并自动纳管云主机的方法 | |
CN114500368A (zh) | 数据传输方法和装置及采用该装置的路由器 | |
WO2015192497A1 (zh) | 通信链路的发送方法、装置及终端 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190215 |
|
RJ01 | Rejection of invention patent application after publication |