CN109388388B - 功能模块间的信息交互方法、装置、设备及存储介质 - Google Patents

功能模块间的信息交互方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN109388388B
CN109388388B CN201811162253.3A CN201811162253A CN109388388B CN 109388388 B CN109388388 B CN 109388388B CN 201811162253 A CN201811162253 A CN 201811162253A CN 109388388 B CN109388388 B CN 109388388B
Authority
CN
China
Prior art keywords
interactive
function
interaction
information
protocol
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.)
Active
Application number
CN201811162253.3A
Other languages
English (en)
Other versions
CN109388388A (zh
Inventor
张磊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xizang Nake Electronic Technology Co.,Ltd.
Original Assignee
Wuhan Douyu Network Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Wuhan Douyu Network Technology Co Ltd filed Critical Wuhan Douyu Network Technology Co Ltd
Priority to CN201811162253.3A priority Critical patent/CN109388388B/zh
Publication of CN109388388A publication Critical patent/CN109388388A/zh
Application granted granted Critical
Publication of CN109388388B publication Critical patent/CN109388388B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • G06F8/22Procedural
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • G06F8/315Object-oriented languages

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Stored Programmes (AREA)
  • Telephonic Communication Services (AREA)

Abstract

本发明实施例公开了一种功能模块间的信息交互方法、装置、设备及存储介质。该方法包括:第一功能模块获取交互信息,并调用对象获取函数,根据交互信息标识从底层功能模块中的缓存对象变量中确定与交互信息标识相对应的交互协议对象,并将交互协议对象的目标数据类型转换为原始数据类型,得到与第二功能模块相对应的目标交互协议对象,以交互信息为函数输入参数,调用目标交互协议对象中的信息交互函数,将交互信息传输至第二功能模块。本发明实施例的技术方案实现了底层功能模块可以存储多个继承不同交互接口协议的交互协议对象,进而使多个功能模块之间可以信息交互,提高了功能模块之间的独立性的技术效果。

Description

功能模块间的信息交互方法、装置、设备及存储介质
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种功能模块间的信息交互方法、装置、设备及存储介质。
背景技术
为了提高应用软件的开发效率,通常是以功能模块化的方式进行软件开发,即将应用软件中的各个功能划分为独立的功能模块进行软件开发。例如,将对弹幕消息进行接收、解析及发送等处理的功能划分为弹幕模块,将对弹幕消息进行过滤及运算等数据处理的功能划分为数据处理模块,将对弹幕消息进行渲染及显示等处理的功能划分为显示模块等。
目前,基于Android系统开发的应用软件中各个功能模块之间的信息交互时,采用了底层功能模块作为桥接的作用实现了弹幕模块和显示模块之间的信息交互,减少了各个功能模块之间的直接耦合性,但是底层功能模块每次只能够缓存一个功能模块中的接口对象,当功能模块的数量有多个时,就无法实现多个功能模块之间的信息交互。
发明内容
本发明实施例提供一种功能模块间的信息交互方法、装置、设备及存储介质,以实现基于Android系统的应用软件开发中,多个独立功能模块之间的信息交互,提高功能模块独立性的技术效果。
第一方面,本发明实施例提供了一种功能模块间的信息交互方法,包括:
第一功能模块获取交互信息;其中,所述交互信息包括交互信息标识;
所述第一功能模块调用对象获取函数,根据所述交互信息标识从底层功能模块中的缓存对象变量中确定与所述交互信息标识相对应的交互协议对象,并将所述交互协议对象的目标数据类型转换为原始数据类型,得到与第二功能模块相对应的目标交互协议对象;其中,所述第一功能模块和所述第二功能模块为所述底层功能模块的顶层功能模块,所述对象获取函数为所述底层功能模块中的预定义函数,且具有私有权限修饰符;所述缓存对象变量中存储了至少一个交互协议对象;
所述第一功能模块以所述交互信息为函数输入参数,调用所述目标交互协议对象中的信息交互函数,将所述交互信息传输至所述第二功能模块;其中,所述信息交互函数根据所述第二功能模块中的信息交互对象继承交互接口协议而获得,所述交互接口协议为所述底层功能模块中预先定义的交互协议,且各第二功能模块的交互协议不同。
第二方面,本发明实施例还提供了一种功能模块间的信息交互装置,包括第一功能模块、第二功能模块和底层功能模块,其中,所述第一功能模块包括:
交互信息获取单元,用于获取交互信息;其中,所述交互信息包括交互信息标识;
目标交互协议对象获取单元,用于调用对象获取函数,根据所述交互信息标识从底层功能模块中的缓存对象变量中确定与所述交互信息标识相对应的交互协议对象,并将所述交互协议对象的目标数据类型转换为原始数据类型,得到与第二功能模块相对应的目标交互协议对象;其中,所述第一功能模块和所述第二功能模块为所述底层功能模块的顶层功能模块,所述对象获取函数为所述底层功能模块中的预定义函数,且具有公有权限修饰符和静态类型修饰符;所述缓存对象变量中存储了至少一个交互协议对象;
交互信息传输单元,用于以所述交互信息为函数输入参数,调用所述目标交互协议对象中的信息交互函数,将所述交互信息传输至所述第二功能模块;其中,所述信息交互函数根据所述第二功能模块中的信息交互对象继承交互接口协议而获得,所述交互接口协议为所述底层功能模块中预先定义的交互协议,且各第二功能模块的交互协议不同。
第三方面,本发明实施例还提供了一种设备,所述设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明任意实施例所提供的功能模块间的信息交互方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现本发明任意实施例所提供的功能模块间的信息交互方法。
本发明实施例的技术方案通过第一功能模块获取交互信息,并调用对象获取函数,根据交互信息标识从底层功能模块中的缓存对象变量中确定与交互信息标识相对应的交互协议对象,并将交互协议对象的目标数据类型转换为原始数据类型,得到与第二功能模块相对应的目标交互协议对象,同时以交互信息为函数输入参数,调用目标交互协议对象中的信息交互函数,将交互信息传输至第二功能模块,解决了现有技术中底层功能模块只能缓存一个功能模块中的一个接口对象,以及缓存继承相同交互接口协议的交互协议对象,当多个功能模块的接口协议不同时,无法进行进行信息交互的技术问题,实现了底层功能模块可以缓存至少一个继承不同接口协议的交互协议对象,从而使多个独立功能模块之间可以信息交互、提高各个功能模块独立性的技术效果。
附图说明
图1为本发明实施例一提供的一种功能模块间的信息交互方法的流程图;
图2为本发明实施例二提供的一种功能模块间的信息交互装置的结构示意图;
图3为本发明实施例三提供的一种设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1为本发明实施例一提供的一种功能模块间的信息交互方法的流程图,本实施例可适用于至少两个独立的功能模块进行信息交互的情况,尤其是可以用于基于Android系统的应用软件开发中各个功能模块进行信息交互的场景,同时也可以用于其他需要利用功能模块进行信息交互的应用场景中。该方法可以由功能模块间的信息交互装置来执行,该装置可以由软件和/或硬件的方式实现,该装置可以集成在安装有内部包含多个独立功能模块的应用软件的设备中,例如典型的是用户终端设备,例如手机、平板电脑或台式电脑等。参见图1,本实施例的方法具体包括如下步骤:
S110、第一功能模块获取交互信息;其中,所述交互信息包括交互信息标识。
其中,功能模块是指实现应用软件开发中某些特定功能的模块。第一功能模块可以是但不限于是弹幕模块、数据处理模块和显示模块中的任一模块。交互信息是指第一功能模块与第二功能模块之间进行交互的信息。第二功能模块也可以是但不限于是弹幕模块、数据处理模块和显示模块中的任一模块。
示例性的,若第一功能模块为弹幕模块,第二功能模块为显示模块,则弹幕模块获取的交互信息可以为弹幕消息,以便弹幕模块可以将获取的弹幕消息传输至显示模块中进行显示处理。本实施例中的交互信息可以是弹幕消息或者诸如数据获取请求和数据处理结果反馈等其他需要进行交互的消息。
具体地,第一功能模块可以通过接收服务器下发的信息来获取交互信息,也可以是自身生成的交互信息,其中,交互信息中还可以包括交互信息标识,交互信息标识具备唯一性,可以通过交互信息标识从底层功能模块中获取与交互信息标识相对应的交互协议对象,本实施例对交互信息的获取方式不做限定。
S120、第一功能模块调用对象获取函数,根据交互信息标识从底层功能模块中的缓存对象变量中确定与交互信息标识相对应的交互协议对象,并将交互协议对象的目标数据类型转换为原始数据类型,得到与第二功能模块相对应的目标交互协议对象。
其中,所述第一功能模块和所述第二功能模块为所述底层功能模块的顶层功能模块,所述对象获取函数为所述底层功能模块中的预定义函数,且具有私有权限修饰符;所述缓存对象变量中存储了至少一个交互协议对象。
其中,底层功能模块是用于桥接第一功能模块和各个第二功能模块的模块,且其位于软件开发架构的底层,以使第一功能模块和各第二功能模块可以通过底层功能模块进行信息交互。这里所提及的底层功能模块是相对于第一功能模块和各第二功能模块所在的软件开发架构层次而言,即第一功能模块和第二功能模块在软件开发架构的上一层级,底层功能模块在上一层级的下一层级。
其中,第二功能模块从数量上来说可以是一个、两个或者多个,可选的,第二功能模块数量为五个,每一个第二功能模块的可以具有相同的或者不同的交互接口协议。若各个第二功能模块中的交互接口协议不同,且定义的数据类型不同,各个第二功能模块中的信息交互对象可以继承不同交互接口协议,得到数据类型不同的信息交互协议对象,此时的信息交互协议对象与交互接口协议中定义的数据类型相同。为了将不同数据类型的信息交互协议对象缓存之底层功能模块中,可以将底层功能模块中的数据类型设置为Map(string type,object),可以确定Map是通过type(交互信息标识)映射成的一个子类型的map构成。也就是说可以将各第二功能模块中信息交互对象继承交互接口接口协议得到至少一个map,并存储到Map中。为了使Map可以兼容多个子类型map,可以将Map的值设置为object类型,其中,object数据类型具备兼容性。可以理解为,可以将交互协议对象map中的数据类型强制转换object型数据并存储到Map中。可以将交互协议对象的object型数据作为目标数据类型,将与交互接口协议相同的数据类型作为原始数据类型。
对象获取函数是一个存放于底层功能模块中的预定义函数。对象获取函数的修饰符为私有权限修饰符private,以便第一功能模块可以直接调用底层功能模块中的对象获取函数。缓存对象变量位于底层功能模块中,用来存储交互协议对象,当第二功能模块的数量有多个时,交互协议对象的数量也有可能是多个,此时交互协议对象的数据类型为object型。目标交互协议对象为交互信息标识从底层功能模块中确定到的交互协议对象,并将交互协议对象的数据类型转换为与交互接口协议相同数据类型的交互协议对象。
具体地,第一功能模块通过调用底层功能模块中的对象获取函数,并根据交互信息标识从底层功能模块中的缓存对象变量中,确定与交互信息标识相对应交互协议对象。并根据交互信息标识调取获取协议名称的函数,获与交互信息标识相对应的交互协议,将交互协议对象的object数据类型强制转换为与交互协议相对应的原始数据类型,将转换为原始数据类型的交互协议对象作为目标交互协议对象,进而也可以确定与目标交互协议对象相对应的第二功能模块。
在本实施例中,可以预先将与交互协议对象相对应的信息交互协议对象存储至底层功能模块中,其中,信息交互协议对象是各第二功能模块中的信息交互对象经过一系列处理得到的对象,因此底层功能模块中的交互协议对象可以有多个。第一功能模块可以通过调用对象获取函数,根据交互信息标识从底层功能模块中筛选出与交互信息标识相同的信息交互协议对象,并调用获取交互接口协议名称的函数,获取与交互信息表示相对应的交互接口协议,根据交互接口协议可以确定交互协议对象的原始数据类型。具体可以通过函数(Map<string,IFuncModule>)mobject,将交互协议对象的目标数据类型进行强制转换为map<string,IFuncModule>,也就是说将交互协议对象的目标数据类型转换为原始数据类型,将转换为原始数据类型的交互协议对象作为,与第二功能模块相对应的目标交互协议对象。
由于信息交互协议对象是根据第二功能模块中的信息交互对象生成的,从而目标交互协议对象也是根据第二功能模块中的信息交互对象生成的,以便第一功能模块可以通过目标交互协议对象来实现与第二功能模块的信息交互,同时可以确定信息交互协议的对象的个数可以与第二功能模块的个数相同。
可选的,第一功能模块和各第二功能模块对应的配置文件的模块依赖属性中均包含底层功能模块的依赖关系添加语句。
其中,配置文件是软件开发时功能模块的配置说明性文件。
具体地,在第一功能模块对应的配置文件build.gradle的模块依赖属性dependence中,通过添加底层功能模块的依赖关系添加语句compile basemodule来实现第一功能模块对底层功能模块的引用。同理,在各个第二功能模块对应的配置文件build.gradle的模块依赖属性dependence中,通过添加底层功能模块的依赖关系添加语句compile basemodule来实现各个第二功能模块对底层功能模块的引用,从而本实施例根据一个底层功能模块构建了第一功能模块和第二功能模块之间的桥接关系。
可选的,在S120之前,还包括:
各第二功能模块中的信息交互对象分别继承交互接口协议,获得至少一个信息交互协议对象;各第二功能模块调用对象缓存函数,获取至少一个信息交互对象的交互接口协议名称,并将至少一个信息交互协议对象的原始数据类型换为目标数据类型进行缓存,获得至少一个缓存对象,至少一个缓存对象分别存储在缓存对象变量中;其中,对象缓存函数为底层功能模块中的预定义函数,且具有公有权限修饰符和静态类型修饰符。
其中,每一个第二功能模块中都可能存在信息交互对象,且每一个信息交互对象可以分别继承与其功能模块相对应的交互接口协议,从而得到至少一个信息交互协议对象。交互接口协议是指预先定义的用于进行信息交互的接口,各个第二功能模块的交互接口协议可以相同也可以不同。其中,交互接口协议种包含预先定义的交互函数,即信息交互函数。对象缓存函数是预先定义的,用于缓存对象的函数。
本发明实施例中,对象缓存函数可以将各个第二功能模块中的信息交互协议对象分别缓存至底层功能模块的缓存对象中。
具体地,底层功能模块中预先定义各个第二功能模块的交互接口协议IFuncModule,以使第一功能模块与各个第二功能模块根据该交互接口协议进行交互,需要说明的是,各第二功能模块可以有相同的交互接口协议,也可以有不同的接口协议,可选的,各个第二功能模块的交互接口协议不同。为了确保底层功能模块可以存储,继承不同交互接口协议的各个交互协议对象,即交互协议对象的数据类型不相同,在将交互协议对象存储到缓存对象变量中时,可以将交互协议对象的数据类型进行强制转换,即将交互协议对象的原始数据类转换为目标数据类型,即转换为object数据类型。可以将数据类型为object型的交互协议对象进行缓存,得到至少一个缓存对象。
本实施例中的第二功能模块可以将信息交互对象继承底层功能模块的交互接口协议,从而获取接口类型的信息交互协议对象。当第二功能模块获取信息交互协议对象时,可以自动触发底层功能模块中的对象缓存函数的执行,以将信息交互协议对象存储至底层功能模块。
可选的,对象缓存函数通过如下步骤实现对信息交互协议对象进行缓存,获得缓存对象的功能:所述底层功能模块分别判断所述对象缓存函数的输入参数是否为所述对象缓存函数的目标输入参数;若是,则通过当前对象关键字,将所述信息交互协议对象的原始数据类型转换为目标数据类型缓存至缓存对象变量,获得所述缓存对象,其中,所述缓存对象变量为所述底层功能模块预先定义的对象变量,用于存储至少一个缓存对象;所述缓存对象变量具有私有权限修饰符。
其中,本实施例的底层功能模块中预先定义了缓存对象变量,以及缓存object类型的协议数据。示例性的,将缓存object类型的协议数据定义为:private voidaddProtocol(String key,object mProtocol),其中缓存对象变量具有私有权限修饰符Private,以保证只允许底层功能模块中的调用类进行访问,从而避免数据篡改。目标输入参数是指对象缓存函数的合法参数。
具体地,各个第二功能模块可以调用对象缓存函数,底层功能模块可以从对象缓存函数的函数输入参数fun中获取到需要缓存的对象。之后,通过判定fun==null来确定对象缓存函数的输入参数是否为目标输入参数。若对象缓存函数的输入参数为目标输入参数,则表明可以进行缓存,从而获得了缓存对象。若对象缓存函数的输入参数不是目标输入参数,则表明无法进行缓存,此时可以直接调用return来终止缓存流程。本实施例中通过判断对象缓存函数的输入参数是否为目标输入参数,可以提高程序的健壮性。
可选的,各第二功能模块中的信息交互对象分别继承交互接口协议,获得至少一个信息交互协议对象,包括:各第二功能模块分别通过信息交互对象,调用协议继承关键字,继承交互接口协议,获得信息交互协议对象,信息交互协议对象中包含信息交互函数。
其中,协议继承关键字是Java语言中规定的进行接口协议继承的关键字。
具体地,各第二功能模块可以通过协议继承关键字implement,对底层功能模块中的交互接口协议IFuncModule进行继承,从而各第二功能模块可以获得信息交互协议对象。由于交互接口协议中包含信息交互函数,从而第二功能模块通过继承该交互接口协议,获得的信息交互协议对象中也包含该信息交互函数。需要说明的是,此时得到的交互协议对象与交互接口协议中的数据类型相同,若要存储到缓存对象变量中,还需要将交互协议对象的数据类型强制转为object型数据。
可选的,对象获取函数通过如下步骤实现从底层功能模块中获得与第二功能模块对应的目标交互协议对象的功能:
底层功能模块判断与交互信息标识相对应的目标缓存对象是否为空对象;若否,则调用函数值返回函数,将目标缓存对象中的信息交互协议对象发送至第一功能模块,作为目标交互协议对象。
具体地,底层功能模块中预先设置至少一个缓存对象,用于存储从各个第二功能模块中获取的信息交互协议对象。在第一功能模块调用底层功能模块中的对象获取函数时,底层功能模块根据交互信息标识,从缓存对象变量中存储的至少一个缓存对象中确定目标缓存对象,底层功能模块可以通过判断目标缓存对象是否为空对象(null对象)来确定缓存对象中是否存储有信息交互协议对象。若缓存对象为非空对象,则表明缓存对象中存储有信息交互协议对象,此时底层功能模块通过直接调用函数值返回函数Return,将目标缓存对象中的信息交互协议对象发送至第一功能模块中,即将目标缓存对象中的信息交互协议对象确定为第一功能模块中的目标交互协议对象。若缓存对象为空对象,则表明目标缓存对象中还没有存储信息交互协议对象,此时可以暂停交互流程,直至目标缓存对象中存储有从第二功能模块获取的信息交互协议对象时,继续进行功能模块的交互流程。
本实施例在第一功能模块调用对象获取函数,来获取底层功能模块中预先存储的信息交互协议对象时,对象获取函数可以定义为:private object getProtocol(),可以根据对象获取函数获取与交互信息标识相对应,且数据类型为object的交互协议对象,可以采用强制数据类型转换将数据类型为object的交互协议对象转换为原始数据类型,将转换为原始数据类型的交互协议对象发送至第一功能模块,以使第一功能模块获取目标交互协议对象。
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,用于以交互信息为函数输入参数,调用目标交互协议对象中的信息交互函数,将交互信息传输至第二功能模块;其中,信息交互函数根据第二功能模块中的信息交互对象继承交互接口协议而获得,交互接口协议为底层功能模块中预先定义的交互协议,且各第二功能模块的交互协议不同。
可选的,获取目标交互协议对象单元212具体用于:调用获取交互接口协议名称的函数,根据交互信息标识获取与交互信息标识相对应的交互接口协议;将交互协议对象的目标数据类型转换为与交互接口协议相同的原始数据类型,得到交互协议对象的原始数据类型,将交互协议对象的原始数据类型作为与第二功能模块相对应的目标交互协议对象。
第二功能模块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.根据权利要求1所述的方法,其特征在于,在所述第一功能模块调用对象获取函数之前,还包括:
各第二功能模块中的信息交互对象分别继承交互接口协议,获得至少一个信息交互协议对象;
所述各第二功能模块调用对象缓存函数,获取至少一个信息交互对象的交互接口协议名称,并将所述至少一个信息交互协议对象的原始数据类型换为目标数据类型进行缓存,获得至少一个缓存对象,所述至少一个缓存对象分别存储在所述缓存对象变量中;
其中,所述对象缓存函数为所述底层功能模块中的预定义函数,且具有公有权限修饰符。
4.根据权利要求3所述的方法,其特征在于,所述对象缓存函数通过如下步骤实现对所述信息交互协议对象进行缓存,获得所述缓存对象的功能:
所述底层功能模块分别判断所述对象缓存函数的输入参数是否为所述对象缓存函数的目标输入参数;
若是,则通过当前对象关键字,将所述信息交互协议对象的原始数据类型转换为目标数据类型缓存至缓存对象变量,获得所述缓存对象,其中,所述缓存对象变量为所述底层功能模块预先定义的对象变量,用于存储至少一个缓存对象;所述缓存对象变量具有私有权限修饰符。
5.根据权利要求3所述的方法,其特征在于,所述至少一个第二功能模块中的信息交互对象分别继承交互接口协议,获得至少一个信息交互协议对象,包括:
所述各第二功能模块分别通过所述信息交互对象,调用协议继承关键字,继承所述交互接口协议,获得所述信息交互协议对象,所述信息交互协议对象中包含所述信息交互函数。
6.根据权利要求5所述的方法,其特征在于,在所述各第二功能模块中的信息交互对象继承所述交互接口协议,获得信息交互协议对象之前,还包括:
所述底层功能模块定义所述交互接口协议及所述交互接口协议中的所述信息交互函数,所述交互接口协议为具有私有权限修饰符的接口类型。
7.根据权利要求1所述的方法,其特征在于,所述第一功能模块和所述至少一个第二功能模块对应的配置文件的模块依赖属性中均包含所述底层功能模块的依赖关系添加语句。
8.一种功能模块间的信息交互装置,其特征在于,包括:第一功能模块、第二功能模块以及底层功能模块,其中,所述第一功能模块包括:
交互信息获取单元,用于获取交互信息;其中,所述交互信息包括交互信息标识;
目标交互协议对象获取单元,用于调用对象获取函数,根据所述交互信息标识从底层功能模块中的缓存对象变量中确定与所述交互信息标识相对应的交互协议对象,并将所述交互协议对象的目标数据类型转换为原始数据类型,得到与第二功能模块相对应的目标交互协议对象;其中,所述第一功能模块和所述第二功能模块为所述底层功能模块的顶层功能模块,所述对象获取函数为所述底层功能模块中的预定义函数,且具有私有权限修饰符;所述缓存对象变量中存储了至少一个交互协议对象;
交互信息传输单元,用于以所述交互信息为函数输入参数,调用所述目标交互协议对象中的信息交互函数,将所述交互信息传输至所述第二功能模块;其中,所述信息交互函数根据所述第二功能模块中的信息交互对象继承交互接口协议而获得,所述交互接口协议为所述底层功能模块中预先定义的交互协议,且各第二功能模块的交互协议不同。
9.一种电子设备,其特征在于,所述设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7中任一所述的功能模块间的信息交互方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-7中任一所述的功能模块间的信息交互方法。
CN201811162253.3A 2018-09-30 2018-09-30 功能模块间的信息交互方法、装置、设备及存储介质 Active CN109388388B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811162253.3A CN109388388B (zh) 2018-09-30 2018-09-30 功能模块间的信息交互方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811162253.3A CN109388388B (zh) 2018-09-30 2018-09-30 功能模块间的信息交互方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN109388388A CN109388388A (zh) 2019-02-26
CN109388388B true CN109388388B (zh) 2022-06-21

Family

ID=65419048

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811162253.3A Active CN109388388B (zh) 2018-09-30 2018-09-30 功能模块间的信息交互方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN109388388B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110324722B (zh) * 2019-07-02 2021-07-23 武汉斗鱼鱼乐网络科技有限公司 直播间中数据的获取方法、装置、设备和存储介质
CN110750295B (zh) * 2019-09-30 2021-05-18 联想(北京)有限公司 一种信息处理方法,装置,电子设备和存储介质
CN111221512B (zh) * 2020-01-03 2023-12-05 杭州涂鸦信息技术有限公司 功能模块混用方法、电子设备和存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107172139A (zh) * 2017-05-10 2017-09-15 北京萤芯科技有限公司 一种无线协议栈及其实现方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU1276699A (en) * 1997-10-24 1999-05-17 Cell Port Labs, Inc. Communications system with modular devices
JP2005301985A (ja) * 2004-02-26 2005-10-27 Ricoh Co Ltd 情報処理装置、オブジェクト生成方法、オブジェクト変換方法、オブジェクト生成プログラム、オブジェクト変換プログラム及び記録媒体
CN107133024A (zh) * 2016-02-29 2017-09-05 北京广联达正源兴邦科技有限公司 基于osgi框架的业务管理系统
CN106155697A (zh) * 2016-07-30 2016-11-23 北京慧摩尔科技有限公司 一种面向服务的开发框架(YC‑Framework)
US10791087B2 (en) * 2016-09-16 2020-09-29 Oracle International Corporation SCIM to LDAP mapping using subtype attributes

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107172139A (zh) * 2017-05-10 2017-09-15 北京萤芯科技有限公司 一种无线协议栈及其实现方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"android module解耦组件化总体概述";snsports;《https://www.jianshu.com/p/e03255a23083》;20180717;正文第1-5页 *

Also Published As

Publication number Publication date
CN109388388A (zh) 2019-02-26

Similar Documents

Publication Publication Date Title
CN109343983B (zh) 功能模块间的信息交互方法、装置、设备及存储介质
CN109388388B (zh) 功能模块间的信息交互方法、装置、设备及存储介质
CN111259037B (zh) 一种基于规则配置的数据查询方法、装置、存储介质及终端
CN110457144A (zh) 一种实现前端应用的方法、装置、介质和设备
CN109032815A (zh) 功能模块间的信息交互方法、装置、设备及存储介质
CN110187986B (zh) 一种命令管理方法、系统、装置及计算机可读存储介质
WO2016107120A1 (zh) 一种应用程序编程接口调用方法及设备
CN110324722B (zh) 直播间中数据的获取方法、装置、设备和存储介质
CN109725887B (zh) 基于消息研发框架的数据交互方法、装置及终端设备
CN108810633B (zh) 弹幕消息传输方法、装置、设备及存储介质
KR102572013B1 (ko) 요청 처리 방법,장치,기기, 컴퓨터 저장매체 및 컴퓨터 프로그램
US11533596B2 (en) API publish method and apparatus
CN114222003A (zh) 服务调用方法、系统、装置、设备及存储介质
CN109144520B (zh) Android中不同对象间的信息交互方法、装置、设备和存储介质
US20170235943A1 (en) Application Access Control Method and Apparatus
CN117194068A (zh) 一种跨进程数据传输方法、系统、设备及存储介质
CN109005468B (zh) 弹幕消息分发方法、装置、设备及存储介质
CN109684009B (zh) 基于协议的倒计时同步方法、装置、存储介质和设备
CN109343982A (zh) 功能模块间的信息交互方法、装置、设备及存储介质
CN112000313A (zh) 请求响应方法、装置、设备及存储介质
CN112988125B (zh) 一种数据桥接方法、装置、设备和存储介质
CN111585992B (zh) 一种检测网络攻击的方法、客户端及存储介质
CN114915837B (zh) 视频渲染的触发方法、装置、电子设备及存储介质
CN113315687B (zh) 代理网络管理方法、装置、存储介质以及终端
CN116389593B (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
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20231213

Address after: 1102, Unit 1, Building 21, Nanlin Yujing, East Ring Road, Liuwu New District, Lhasa, Xizang Autonomous Region, 850000

Patentee after: Xizang Nake Electronic Technology Co.,Ltd.

Address before: 11 / F, building B1, phase 4.1, software industry, No.1, Software Park East Road, Wuhan East Lake Development Zone, Wuhan City, Hubei Province, 430070

Patentee before: WUHAN DOUYU NETWORK TECHNOLOGY Co.,Ltd.