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

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

Info

Publication number
CN109032815A
CN109032815A CN201810790156.2A CN201810790156A CN109032815A CN 109032815 A CN109032815 A CN 109032815A CN 201810790156 A CN201810790156 A CN 201810790156A CN 109032815 A CN109032815 A CN 109032815A
Authority
CN
China
Prior art keywords
functional module
function
information
interactive
module
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
Application number
CN201810790156.2A
Other languages
English (en)
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.)
Wuhan Douyu Network 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 CN201810790156.2A priority Critical patent/CN109032815A/zh
Publication of CN109032815A publication Critical patent/CN109032815A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event 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

本发明实施例公开了一种功能模块间的信息交互方法、装置、设备及存储介质。该方法包括:第一功能模块获取交互信息;第一功能模块调用对象获取函数,从底层功能模块中获得与第二功能模块对应的目标交互协议对象;第一功能模块以交互信息为函数输入参数,调用目标交互协议对象中的信息交互函数,将交互信息传输至第二功能模块,其中,信息交互函数根据第二功能模块中的信息交互对象继承交互接口协议而获得,交互接口协议为底层功能模块中预先定义的交互协议。通过上述技术方案,可以实现基于Android系统的应用软件开发中,各个功能模块之间的信息交互,减少各个功能模块之间的依赖关系与直接耦合关系,提高功能模块的独立性。

Description

功能模块间的信息交互方法、装置、设备及存储介质
技术领域
本发明实施例涉及计算机技术,尤其涉及一种功能模块间的信息交互方法、装置、设备及存储介质。
背景技术
为了提高应用软件的开发效率,通常是以功能模块化的方式进行软件开发,即将应用软件中的各个功能划分为独立的功能模块进行软件开发。例如,将对弹幕消息进行接收、解析及发送等处理的功能划分为弹幕模块,将对弹幕消息进行过滤及运算等数据处理的功能划分为数据处理模块,将对弹幕消息进行渲染及显示等处理的功能划分为显示模块等。
目前,基于Android系统开发的应用软件中各个功能模块之间的信息交互,是通过功能模块之间的引用关系来实现对象的获取,具体的实现方式是修改功能模块中配置文件build.gradle的模块依赖属性dependence。例如,在显示模块对应的模块依赖属性dependence中,通过添加弹幕模块danmu的依赖关系添加语句compile danmu来实现显示模块对弹幕模块的引用。
上述各个功能模块之间的信息交互方式会导致两个功能模块之间有依赖关系,该依赖关系的存在不利于功能模块之间的解耦,会制约这两个功能模块的独立开发。
发明内容
本发明实施例提供一种功能模块间的信息交互方法、装置、设备及存储介质,以实现基于Android系统的应用软件开发中,各个功能模块之间的信息交互,减少各个功能模块之间的依赖关系与直接耦合关系,提高功能模块的独立性。
第一方面,本发明实施例提供了一种功能模块间的信息交互方法,包括:
第一功能模块获取交互信息;
所述第一功能模块调用对象获取函数,从底层功能模块中获得与第二功能模块对应的目标交互协议对象,其中,所述第一功能模块和所述第二功能模块为所述底层功能模块的顶层功能模块,所述对象获取函数为所述底层功能模块中的预定义函数,且具有公有权限修饰符和静态类型修饰符;
所述第一功能模块以所述交互信息为函数输入参数,调用所述目标交互协议对象中的信息交互函数,将所述交互信息传输至所述第二功能模块,其中,所述信息交互函数根据所述第二功能模块中的信息交互对象继承交互接口协议而获得,所述交互接口协议为所述底层功能模块中预先定义的交互协议。
第二方面,本发明实施例还提供了一种功能模块间的信息交互装置,包括第一功能模块、第二功能模块和底层功能模块,其中,所述第一功能模块包括:
交互信息获取单元,用于获取交互信息;
目标交互协议对象获取单元,用于调用对象获取函数,从底层功能模块中获得与第二功能模块对应的目标交互协议对象,其中,所述第一功能模块和所述第二功能模块为所述底层功能模块的顶层功能模块,所述对象获取函数为所述底层功能模块中的预定义函数,且具有公有权限修饰符和静态类型修饰符;
交互单元,用于以所述交互信息为函数输入参数,调用所述目标交互协议对象中的信息交互函数,将所述交互信息传输至所述第二功能模块,其中,所述信息交互函数根据所述第二功能模块中的信息交互对象继承交互接口协议而获得,所述交互接口协议为所述底层功能模块中预先定义的交互协议。
第三方面,本发明实施例还提供了一种设备,所述设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明任意实施例所提供的功能模块间的信息交互方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现本发明任意实施例所提供的功能模块间的信息交互方法。
本发明实施例通过第一功能模块获取交互信息,并调用对象获取函数,从底层功能模块中获得与第二功能模块对应的目标交互协议对象;第一功能模块以交互信息为函数输入参数,调用目标交互协议对象中的信息交互函数,将交互信息传输至第二功能模块。实现了利用底层功能模块构建第一功能模块和第二功能模型之间的桥接关系,使得第一功能模块可以通过底层功能模块来与第二功能模块进行信息交互,从而避免了两个功能模块之间的直接依赖关系与直接耦合关系,提高了功能模块的独立性,进而也提高了开发效率。
附图说明
图1是本发明实施例一提供的一种功能模块间的信息交互方法的流程图;
图2是本发明实施例二提供的一种功能模块间的信息交互装置的结构示意图;
图3是本发明实施例三提供的一种设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1为本发明实施例一提供的一种功能模块间的信息交互方法的流程图,本实施例可适用于两个独立的功能模块进行信息交互的情况,尤其是可以用于基于Android系统的应用软件开发中各个功能模块进行信息交互的场景,同时也可以用于其他需要利用功能模块进行信息交互的应用场景中。该方法可以由功能模块间的信息交互装置来执行,该装置可以由软件和/或硬件的方式实现,该装置可以集成在安装有内部包含多个独立功能模块的应用软件的设备中,例如典型的是用户终端设备,例如手机、平板电脑或台式电脑等。参见图1,本实施例的方法具体包括如下步骤:
S110、第一功能模块获取交互信息。
其中,功能模块是指实现应用软件开发中某些特定功能的模块。第一功能模块可以是但不限于弹幕模块、数据处理模块和显示模块中的任一模块。交互信息是指第一功能模块与第二功能模块之间进行交互的信息。第二功能模块也可以是但不限于弹幕模块、数据处理模块和显示模块中的任一模块。示例性的,若第一功能模块为弹幕模块,第二功能模块为显示模块,则弹幕模块获取的交互信息可以为弹幕消息,以便弹幕模块可以将获取的弹幕消息传输至显示模块中进行显示处理。本实施例中的交互信息可以是弹幕消息或者诸如数据获取请求和数据处理结果反馈等其他需要进行交互的消息。
具体地,第一功能模块可以通过接收服务器下发的信息来获取交互信息,也可以是自身生成的交互信息,本实施例对交互信息的获取方式不做限定。
S120、第一功能模块调用对象获取函数,从底层功能模块中获得与第二功能模块对应的目标交互协议对象,其中,第一功能模块和第二功能模块为底层功能模块的顶层功能模块,对象获取函数为底层功能模块中的预定义函数,且具有公有权限修饰符和静态类型修饰符。
其中,底层功能模块是用于桥接第一功能模块和第二功能模块的模块,且其位于软件开发架构的底层,以使第一功能模块和第二功能模块可以通过底层功能模块进行信息交互。这里的底层是相对于第一功能模块和第二功能模块所在的软件开发架构层次而言,即第一功能模块和第二功能模块在软件开发架构的上一层级,底层功能模块在上一层级的下一层级。对象获取函数是一个存放于底层功能模块中的预定义函数。对象获取函数的修饰符为公有权限修饰符public和静态类型修饰符static,以便第一功能模块可以直接调用底层功能模块中的对象获取函数。
具体地,第一功能模块通过调用底层功能模块中的对象获取函数,可以从底层功能模块中获取与第二功能模块对应的目标交互协议对象。第一功能模块获取的目标交互协议对象对应于第二功能模块中用于进行信息交互的对象(即信息交互对象),从而第一功能模块可以通过目标交互协议对象来实现与第二功能模块的信息交互。在本实施例中,可以预先将与目标交互协议对象相对应的信息交互协议对象存储至底层功能模块中,其中,信息交互协议对象是第二功能模块中的信息交互对象经过一系列处理得到的对象。第一功能模块可以通过调用对象获取函数,获取底层功能模块中预先存储的信息交互协议对象,并将获取的信息交互协议对象确定为目标交互协议对象。由于信息交互协议对象是根据第二功能模块中的信息交互对象生成的,从而目标交互协议对象也是根据第二功能模块中的信息交互对象生成的,以便第一功能模块可以通过目标交互协议对象来实现与第二功能模块的信息交互。
可选的,第一功能模块和第二功能模块对应的配置文件的模块依赖属性中均包含底层功能模块的依赖关系添加语句。
其中,配置文件是软件开发时功能模块的配置说明性文件。
具体地,在第一功能模块对应的配置文件build.gradle的模块依赖属性dependence中,通过添加底层功能模块的依赖关系添加语句compile basemodule来实现第一功能模块对底层功能模块的引用。同理,在第二功能模块对应的配置文件build.gradle的模块依赖属性dependence中,通过添加底层功能模块的依赖关系添加语句compilebasemodule来实现第二功能模块对底层功能模块的引用,从而本实施例根据一个底层功能模块构建了第一功能模块和第二功能模块之间的桥接关系。
在现有的功能模块中,通常是将交互接口放置在功能模块的内部,从而实现功能模块之间的信息交互。而在本实施例中,将功能模块的交互接口设置于功能模块外部的底层功能模块中,以使多个功能模块可以获取到同一个交互接口,从而可以通过唯一的接口来构建多个功能模块之间的交互,进而解耦了多个功能模块之间的直接依赖关系。
可选的,对象获取函数通过如下步骤实现从底层功能模块中获得第二功能模块对应的目标交互协议对象的功能:
底层功能模块判断缓存对象是否为空对象,其中,缓存对象用于存储从第二功能模块获取的信息交互协议对象;若否,则调用函数值返回函数,将缓存对象中的信息交互协议对象发送至第一功能模块,作为目标交互协议对象。
具体地,底层功能模块中预先设置一个缓存对象,用于存储从第二功能模块中获取的信息交互协议对象。在第一功能模块调用底层功能模块中的对象获取函数时,底层功能模块可以通过判断缓存对象是否为空对象(null对象)来确定缓存对象中是否存储有信息交互协议对象。若缓存对象为非空对象,则表明缓存对象中存储有信息交互协议对象,此时底层功能模块通过直接调用函数值返回函数Return,将缓存对象中的信息交互协议对象发送至第一功能模块中,即将缓存对象中的信息交互协议对象确定为第一功能模块中的目标交互协议对象。若缓存对象为空对象,则表明缓存对象中没有存储信息交互协议对象,此时可以暂停交互流程,直至缓存对象中存储有从第二功能模块获取的信息交互协议对象时,继续进行功能模块的交互流程。
可选的,在S120之前,还包括:
第二功能模块中的信息交互对象继承交互接口协议,获得信息交互协议对象;第二功能模块调用对象缓存函数,对信息交互协议对象进行缓存,获得缓存对象,其中,对象缓存函数为底层功能模块中的预定义函数,且具有公有权限修饰符和静态类型修饰符。
其中,交互接口协议是指预先定义的用于进行信息交互的接口,其中包含预先定义的交互函数,即信息交互函数。对象缓存函数是预先定义的,用于缓存对象的函数。本发明实施例中,对象缓存函数用于将第二功能模块中的信息交互协议对象缓存至底层功能模块的缓存对象中。对象缓存函数具有公有权限修饰符和静态类型修饰符,从而可以使得第二功能模块可以直接调用底层功能模块中的对象缓存函数。
具体地,底层功能模块中预先定义一个交互接口协议IFuncModule,以使第一功能模块与第二功能模块根据该交互接口协议进行交互。本实施例中的第二功能模块可以将信息交互对象继承底层功能模块的交互接口协议,从而获取接口类型的信息交互协议对象。当第二功能模块获取信息交互协议对象时,可以自动触发底层功能模块中的对象缓存函数的执行,以将信息交互协议对象存储至底层功能模块。
可选的,第二功能模块中的信息交互对象继承交互接口协议,获得信息交互协议对象,包括:
第二功能模块通过信息交互对象,调用协议继承关键字,继承交互接口协议,获得信息交互协议对象,信息交互协议对象中包含信息交互函数。
其中,协议继承关键字是Java语言中规定的进行接口协议继承的关键字。
具体地,第二功能模块通过协议继承关键字implement,对底层功能模块中的交互接口协议IFuncModule进行继承,从而第二功能模块可以获得信息交互协议对象。由于交互接口协议中包含信息交互函数,从而第二功能模块通过继承该交互接口协议获得的信息交互协议对象中也包含该信息交互函数。
可选的,在第二功能模块中的信息交互对象继承交互接口协议,获得信息交互协议对象之前,还包括:底层功能模块定义交互接口协议及交互接口协议中的信息交互函数,交互接口协议为具有公有权限修饰符的接口类型,信息交互函数的函数输入参数类型分别为字符串类型和对象类型。
具体地,在底层功能模块中预先定义一个交互接口,且该交互接口中包含预先定义,但未进行函数实现的信息交互函数。例如,该交互接口的定义如下所示:
Public interface IFuncModule{
onEvent(Stirng eventType,Object eventMsg);
}
交互接口协议IfuncModule中包含一个信息交互函数onEvent,且onEvent的函数输入参数中包含一个字符串String类型的eventType数据和一个对象Object类型的eventMsg数据,其中eventType为交互信息标识,eventMsg为交互信息体。本实施例通过在底层功能模块中定义了一个交互接口,使得第一功能模块和第二功能模块可以获取到该交互接口的引用关系。通过该交互接口第一功能模块可以获取到第二功能模块的持有关系,从而两个功能模块可以进行信息交互,相比于现有技术中的直接对象持有要更加优越,并且不会存在直接依赖关系。
需要注意的是,底层功能模块的交互接口协议IFuncModule中包含预定义的信息交互函数,在第二功能模块中的信息交互对象继承该交互接口协议时,需要对上述信息交互函数进行实现,即实例化。具体的,第二功能模块通过调用协议继承关键字,继承交互接口协议,并对预定义的信息交互函数进行回调,获得第二功能模块接口,通过基于第二功能模块接口,对信息交互对象赋值,从而获得信息交互协议对象。由于本实施例中交互接口中的回调函数的功能仅需进行参数传递,故该回调函数内部并未进行具体的函数体实现,而是通过一次回调来对其进行函数实现。当然,如果该回调函数除了参数传递之外,还需进行弹幕消息处理等操作,则需要在回调函数实现的过程中,进行具体函数代码的实现。
可选的,对象缓存函数通过如下步骤实现对信息交互协议对象进行缓存,获得缓存对象的功能:底层功能模块判断对象缓存函数的输入参数是否为对象缓存函数的目标输入参数;若是,则通过当前对象关键字,将信息交互协议对象缓存至缓存对象变量,获得缓存对象,其中,缓存对象变量为底层功能模块预先定义的对象变量,缓存对象变量具有私有权限修饰符和静态类型修饰符。
其中,本实施例的底层功能模块中预先定义了一个静态的缓存对象变量,以缓存第二功能模块中的信息交互协议对象至缓存对象变量中。示例性的,将缓存对象变量mIFuncModule定义为:Private static IFuncModule mIFuncModule,其中缓存对象变量具有私有权限修饰符Private和静态类型修饰符static,以保证只允许底层功能模块中的调用类进行访问,从而避免数据篡改。目标输入参数是指对象缓存函数的合法参数。
具体地,第二功能模块调用对象缓存函数cacheIFuncModule,即public staticcacheIFuncModule(IFuncModule fun)后,底层功能模块具体来执行对象缓存函数。底层功能模块可以从对象缓存函数的函数输入参数fun中获取到需要缓存的对象。之后,通过判定fun==null来确定对象缓存函数的输入参数是否为目标输入参数。若对象缓存函数的输入参数为目标输入参数,则表明可以进行缓存,此时可以通过调用当前对象关键字this的变量赋值语句this.mIFuncModule=fun,将传递进来的fun变量信息(即信息交互协议对象)缓存到当前对象关键字this的缓存对象变量mIFuncModule中,从而获得了缓存对象。若对象缓存函数的输入参数不是目标输入参数,则表明无法进行缓存,此时可以直接调用return来终止缓存流程。本实施例中通过判断对象缓存函数的输入参数是否为目标输入参数,可以提高程序的健壮性。
本实施例在第一功能模块调用对象获取函数,来获取底层功能模块中预先存储的信息交互协议对象时,对象获取函数可以定义为:Public static IFuncModulegetIFuncModule(),当缓存对象变量mIFuncModule不是一个null对象,则可以直接通过调用return mIFuncModule将缓存对象变量中的信息交互协议对象发送至第一功能模块,以使第一功能模块获取目标交互协议对象。
S130、第一功能模块以交互信息为函数输入参数,调用目标交互协议对象中的信息交互函数,将交互信息传输至第二功能模块,其中,信息交互函数根据第二功能模块中的信息交互对象继承交互接口协议而获得,交互接口协议为底层功能模块中预先定义的交互协议。
具体地,根据上述说明可知,第一功能模块中的目标交互协议对象是通过第二功能模块中的信息交互对象,继承交互接口协议而获得的,而信息交互协议对象中包含信息交互函数,从而目标交互协议对象也包含信息交互函数。根据交互接口协议IFuncModule中信息交互函数onEvent的定义可知,需要将交互信息预先解析为一个字符串String类型的eventType数据和一个对象Object类型的eventMsg数据,其中eventType为交互信息标识,eventMsg为交互信息体,从而将交互信息作为信息交互函数中的函数输入参数,通过调用目标交互协议对象中的信息交互函数onEvent(Stirng eventType,Object eventMsg),将交互信息传输至第二功能模块中,从而基于底层功能模块,完成了第一功能模块和第二功能模块之间的信息交互,提高了功能模块的独立性,极大程度上解耦了第一功能模块与第二功能模块之间的依赖关系。
在本实施例中,功能模块间的信息交互方法的工作过程是:在底层功能模块中预先定义一个交互接口协议IFuncModule,第二功能模块中的信息交互对象继承交互接口协议,从而获得信息交互协议对象;第二功能模块调用对象缓存函数public staticcacheIFuncModule(IFuncModule fun),底层功能模块将第二功能模块中的信息交互协议对象缓存至缓存对象变量mIFuncModule中,从而获取缓存对象。当第一功能模块想要将获取的交互信息传输至第二功能模块时,首先第一功能模块通过调用对象获取函数Publicstatic IFuncModule getIFuncModule(),从底层功能模块的缓存对象中获取存储的信息交互协议对象,将获取的信息交互协议对象作为第一功能模块中的目标交互协议对象。然后第一功能模块以交互信息为函数输入参数,调用目标交互协议对象中的信息交互函数onEvent,将交互信息传输至第二功能模块。同理,若第二功能模块想要将交互信息传输至第一功能模块,也可以通过与上述相同的工作过程来实现。
本实施例的技术方案,通过第一功能模块获取交互信息,并调用对象获取函数,从底层功能模块中获得与第二功能模块对应的目标交互协议对象;第一功能模块以交互信息为函数输入参数,调用目标交互协议对象中的信息交互函数,将交互信息传输至第二功能模块。实现了利用底层功能模块来构建第一功能模块和第二功能模型之间的桥接关系,使得第一功能模块可以通过底层功能模块来与第二功能模块进行信息交互,从而避免了两个功能模块之间的直接依赖关系与直接耦合关系,提高了功能模块的独立性,进而也提高了开发效率。
以下是本发明实施例提供的功能模块间的信息交互装置的实施例,该装置与上述各实施例的功能模块间的信息交互方法属于同一个发明构思,在功能模块间的信息交互装置的实施例中未详尽描述的细节内容,可以参考上述功能模块间的信息交互方法的实施例。
实施例二
图2为本发明实施例二提供的一种功能模块间的信息交互装置的结构示意图。参见图2,该功能模块间的信息交互装置包括:第一功能模块210、第二功能模块220和底层功能模块230,其中,第一功能模块210包括:交互信息获取单元211、目标交互协议对象获取单元212和交互单元213。
其中,交互信息获取单元211,用于获取交互信息;
目标交互协议对象获取单元212,用于调用对象获取函数,从底层功能模块中获得与第二功能模块对应的目标交互协议对象,其中,第一功能模块和第二功能模块为底层功能模块的顶层功能模块,对象获取函数为底层功能模块中的预定义函数,且具有公有权限修饰符和静态类型修饰符;
交互单元213,用于以交互信息为函数输入参数,调用目标交互协议对象中的信息交互函数,将交互信息传输至第二功能模块,其中,信息交互函数根据第二功能模块中的信息交互对象继承交互接口协议而获得,交互接口协议为底层功能模块中预先定义的交互协议。
可选的,底层功能模块230包括对象获取函数执行单元,用于:
通过如下步骤实现从底层功能模块中获得第二功能模块对应的目标交互协议对象的功能:
判断缓存对象是否为空对象,其中,缓存对象用于存储从第二功能模块获取的信息交互协议对象;
若否,则调用函数值返回函数,将缓存对象中的信息交互协议对象发送至第一功能模块,作为目标交互协议对象。
可选的,第二功能模块220包括:
信息交互协议对象获取单元,用于在第一功能模块调用对象获取函数,从底层功能模块中获得第二功能模块对应的目标交互协议对象之前,第二功能模块中的信息交互对象继承交互接口协议,获得信息交互协议对象;
对象缓存函数调用单元,用于调用对象缓存函数,对信息交互协议对象进行缓存,获得缓存对象,其中,对象缓存函数为底层功能模块中的预定义函数,且具有公有权限修饰符和静态类型修饰符。
可选的,底层功能模块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.根据权利要求3所述的方法,其特征在于,所述对象缓存函数通过如下步骤实现所述对所述信息交互协议对象进行缓存,获得所述缓存对象的功能:
所述底层功能模块判断所述对象缓存函数的输入参数是否为所述对象缓存函数的目标输入参数;
若是,则通过当前对象关键字,将所述信息交互协议对象缓存至缓存对象变量,获得所述缓存对象,其中,所述缓存对象变量为所述底层功能模块预先定义的对象变量,所述缓存对象变量具有私有权限修饰符和静态类型修饰符。
5.根据权利要求3所述的方法,其特征在于,所述第二功能模块中的信息交互对象继承所述交互接口协议,获得信息交互协议对象,包括:
所述第二功能模块通过所述信息交互对象,调用协议继承关键字,继承所述交互接口协议,获得所述信息交互协议对象,所述信息交互协议对象中包含所述信息交互函数。
6.根据权利要求3或5所述的方法,其特征在于,在所述第二功能模块中的信息交互对象继承所述交互接口协议,获得信息交互协议对象之前,还包括:
所述底层功能模块定义所述交互接口协议及所述交互接口协议中的所述信息交互函数,所述交互接口协议为具有公有权限修饰符的接口类型,所述信息交互函数的函数输入参数类型分别为字符串类型和对象类型。
7.根据权利要求1所述的方法,其特征在于,所述第一功能模块和所述第二功能模块对应的配置文件的模块依赖属性中均包含所述底层功能模块的依赖关系添加语句。
8.一种功能模块间的信息交互装置,其特征在于,包括第一功能模块、第二功能模块和底层功能模块,其中,所述第一功能模块包括:
交互信息获取单元,用于获取交互信息;
目标交互协议对象获取单元,用于调用对象获取函数,从底层功能模块中获得与第二功能模块对应的目标交互协议对象,其中,所述第一功能模块和所述第二功能模块为所述底层功能模块的顶层功能模块,所述对象获取函数为所述底层功能模块中的预定义函数,且具有公有权限修饰符和静态类型修饰符;
交互单元,用于以所述交互信息为函数输入参数,调用所述目标交互协议对象中的信息交互函数,将所述交互信息传输至所述第二功能模块,其中,所述信息交互函数根据所述第二功能模块中的信息交互对象继承交互接口协议而获得,所述交互接口协议为所述底层功能模块中预先定义的交互协议。
9.一种设备,其特征在于,所述设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7中任一所述的功能模块间的信息交互方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-7中任一所述的功能模块间的信息交互方法。
CN201810790156.2A 2018-07-18 2018-07-18 功能模块间的信息交互方法、装置、设备及存储介质 Pending CN109032815A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810790156.2A CN109032815A (zh) 2018-07-18 2018-07-18 功能模块间的信息交互方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810790156.2A CN109032815A (zh) 2018-07-18 2018-07-18 功能模块间的信息交互方法、装置、设备及存储介质

Publications (1)

Publication Number Publication Date
CN109032815A true CN109032815A (zh) 2018-12-18

Family

ID=64643992

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810790156.2A Pending CN109032815A (zh) 2018-07-18 2018-07-18 功能模块间的信息交互方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN109032815A (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109684009A (zh) * 2018-12-20 2019-04-26 武汉瓯越网视有限公司 基于协议的倒计时同步方法、装置、存储介质和设备
CN110045997A (zh) * 2019-04-15 2019-07-23 武汉斗鱼鱼乐网络科技有限公司 基础功能模块的对象初始化方法、装置、设备和存储介质
CN110399181A (zh) * 2019-07-23 2019-11-01 深圳市元征科技股份有限公司 软件开发工具包功能调用方法、系统及电子设备和介质
CN111221512A (zh) * 2020-01-03 2020-06-02 杭州涂鸦信息技术有限公司 功能模块混用方法、电子设备和存储介质
CN111367510A (zh) * 2020-02-24 2020-07-03 腾讯音乐娱乐科技(深圳)有限公司 一种安卓功能模块开发的方法及装置
CN111488286A (zh) * 2020-04-15 2020-08-04 腾讯音乐娱乐科技(深圳)有限公司 一种Android模块独立开发的方法及装置
CN111913700A (zh) * 2020-06-24 2020-11-10 北京大学(天津滨海)新一代信息技术研究院 一种云-端交互协议分析方法、装置、设备及存储介质
CN112988125A (zh) * 2019-12-02 2021-06-18 武汉斗鱼鱼乐网络科技有限公司 一种数据桥接方法、装置、设备和存储介质

Citations (4)

* Cited by examiner, † Cited by third party
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 大唐软件技术股份有限公司 一种基于安卓系统的数据处理方法和装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Title
SNSPORTS: "android module解耦组件化总体概述", 《简书网,HTTPS://WWW.JIANSHU.COM/P/E03255A23083》 *

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109684009A (zh) * 2018-12-20 2019-04-26 武汉瓯越网视有限公司 基于协议的倒计时同步方法、装置、存储介质和设备
CN109684009B (zh) * 2018-12-20 2022-03-08 武汉瓯越网视有限公司 基于协议的倒计时同步方法、装置、存储介质和设备
CN110045997A (zh) * 2019-04-15 2019-07-23 武汉斗鱼鱼乐网络科技有限公司 基础功能模块的对象初始化方法、装置、设备和存储介质
CN110045997B (zh) * 2019-04-15 2022-07-05 武汉斗鱼鱼乐网络科技有限公司 基础功能模块的对象初始化方法、装置、设备和存储介质
CN110399181A (zh) * 2019-07-23 2019-11-01 深圳市元征科技股份有限公司 软件开发工具包功能调用方法、系统及电子设备和介质
CN112988125A (zh) * 2019-12-02 2021-06-18 武汉斗鱼鱼乐网络科技有限公司 一种数据桥接方法、装置、设备和存储介质
CN112988125B (zh) * 2019-12-02 2023-09-12 广州铭诚计算机科技有限公司 一种数据桥接方法、装置、设备和存储介质
CN111221512A (zh) * 2020-01-03 2020-06-02 杭州涂鸦信息技术有限公司 功能模块混用方法、电子设备和存储介质
CN111221512B (zh) * 2020-01-03 2023-12-05 杭州涂鸦信息技术有限公司 功能模块混用方法、电子设备和存储介质
CN111367510A (zh) * 2020-02-24 2020-07-03 腾讯音乐娱乐科技(深圳)有限公司 一种安卓功能模块开发的方法及装置
CN111367510B (zh) * 2020-02-24 2024-03-19 腾讯音乐娱乐科技(深圳)有限公司 一种安卓功能模块开发的方法及装置
CN111488286A (zh) * 2020-04-15 2020-08-04 腾讯音乐娱乐科技(深圳)有限公司 一种Android模块独立开发的方法及装置
CN111488286B (zh) * 2020-04-15 2024-02-09 腾讯音乐娱乐科技(深圳)有限公司 一种Android模块独立开发的方法及装置
CN111913700A (zh) * 2020-06-24 2020-11-10 北京大学(天津滨海)新一代信息技术研究院 一种云-端交互协议分析方法、装置、设备及存储介质
CN111913700B (zh) * 2020-06-24 2024-02-13 北京大学(天津滨海)新一代信息技术研究院 一种云-端交互协议分析方法、装置、设备及存储介质

Similar Documents

Publication Publication Date Title
CN109032815A (zh) 功能模块间的信息交互方法、装置、设备及存储介质
JP6975332B2 (ja) ブロックチェーンベースのスマートコントラクト呼び出し方法および装置、および電子デバイス
US20190251079A1 (en) Asset management method and apparatus, and electronic device
US20200133938A1 (en) Asset management method and apparatus, and electronic device
JP2021511560A (ja) ブロックチェーンに基づいてトランザクションを実行するための方法、装置、および電子デバイス
CN109995713A (zh) 一种微服务框架中的服务处理方法及相关设备
CN109146679A (zh) 基于区块链的智能合约调用方法及装置、电子设备
CN110651241A (zh) 将多个移动设备连接到智能家庭助理账户
CN110213217B (zh) 数据访问方法、相关装置、网关和数据访问系统
CN109343983A (zh) 功能模块间的信息交互方法、装置、设备及存储介质
CN105765533B (zh) 用于固件虚拟化的方法和装置
CN109635550B (zh) 集群数据的权限校验方法、网关及系统
CN107528976A (zh) 资源配置方法及相关产品
CN109388388A (zh) 功能模块间的信息交互方法、装置、设备及存储介质
CN106850242A (zh) 一种信息处理方法及装置
CN108076042A (zh) 用户信息获取方法、服务器及计算机可读介质
CN109903040B (zh) 一种消息发送方法、装置和存储介质
CN112243016B (zh) 一种中间件平台、终端设备、5g人工智能云处理系统及处理方法
CN107426266A (zh) 数据处理方法和服务器
CN107148022A (zh) 一种防蹭网提醒方法及相关设备
CN110472033A (zh) 基于nlp模型的问答方法、装置及服务器
CN109343982A (zh) 功能模块间的信息交互方法、装置、设备及存储介质
CN109144520A (zh) Android中不同对象间的信息交互方法、装置、设备和存储介质
CN109144750A (zh) 一种消息处理方法、装置、电子设备及存储介质
CN105302586A (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