CN109144597B - 一种获得下载接口回调信息的方法和装置 - Google Patents

一种获得下载接口回调信息的方法和装置 Download PDF

Info

Publication number
CN109144597B
CN109144597B CN201710463659.4A CN201710463659A CN109144597B CN 109144597 B CN109144597 B CN 109144597B CN 201710463659 A CN201710463659 A CN 201710463659A CN 109144597 B CN109144597 B CN 109144597B
Authority
CN
China
Prior art keywords
download
callback
class
callback information
pieces
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
CN201710463659.4A
Other languages
English (en)
Other versions
CN109144597A (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.)
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 CN201710463659.4A priority Critical patent/CN109144597B/zh
Publication of CN109144597A publication Critical patent/CN109144597A/zh
Application granted granted Critical
Publication of CN109144597B publication Critical patent/CN109144597B/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/60Software deployment
    • G06F8/61Installation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)
  • Telephonic Communication Services (AREA)

Abstract

本发明实施例提供了一种获得下载接口回调信息的方法和装置,用于解决接收者被动获得大量冗余信息的技术问题,实现接收者主要获得其关注的中间状态对应的回调信息的技术效果。所述方法包括:在下载接口和需要获得N个目标回调信息的实现类之间构建一抽象类;N为正整数;控制所述抽象类继承所述下载接口,以及所述实现类继承所述抽象类;所述下载接口将包括N个所述目标回调信息的M个回调信息发送给所述抽象类;M为大于等于N的正整数;所述抽象类将N个所述目标回调信息发送给所述实现类;所述实现类通过所述抽象类获得N个所述目标回调信息。

Description

一种获得下载接口回调信息的方法和装置
技术领域
本发明涉及计算机技术领域,尤其涉及一种获得下载接口回调信息的方法和装置。
背景技术
下载接口用于在下载过程中传输实现者和接收端的交互信息。为了描述下载状态,通常会定义很多中间状态,中间状态则具体通过回调函数反馈的回调信息表现。接收者通过继承下载接口获得所有回调信息。
然而,在具体实现过程中,下载接口所包括的回调函数数量多,故而接收者获得信息量也很大。如果接收者并不关注下载过程的全部中间状态,而只是关注其中的中间状态,那么接收者就被动地获得了大量冗余信息。
发明内容
本发明实施例提供了一种获得下载接口回调信息的方法和装置,用于解决接收者被动获得大量冗余信息的技术问题,实现接收者主要获得其关注的中间状态对应的回调信息的技术效果。
第一方面,本发明提供了一种获得下载接口回调信息的方法,包括:
在下载接口和需要获得N个目标回调信息的实现类之间构建一抽象类;N为正整数;
控制所述抽象类继承所述下载接口,以及所述实现类继承所述抽象类;
所述下载接口将包括N个所述目标回调信息的M个回调信息发送给所述抽象类;M为大于等于N的正整数;
所述抽象类将N个所述目标回调信息发送给所述实现类;
所述实现类通过所述抽象类获得N个所述目标回调信息。
可选的,在控制所述抽象类继承所述下载接口之前,所述方法还包括:
将所述下载接口拆分为多个下载子接口,其中,N个目标回调信息由多个所述下载子接口中的第一下载子接口提供;
控制所述抽象类继承所述下载接口,包括:
控制所述抽象类继承所述第一下载子接口。
可选的,将所述下载接口拆分为多个下载子接口,包括:
将所述下载接口所封装的生成M个所述回调信息的M个回调函数中划分为多个集合,每个所述集合包括至少一个所述回调函数,生成N个所述目标回调信息的N个目标回调函数划分在第一集合中,并且所述第一集合还包括其他K个回调函数,其中K为自然数;
将每个所述集合所包括至少一个所述回调函数封装为一个下载子接口,其中,所述第一集合包括的N+K所述回调函数封装到所述第一下载子接口中。
可选的,在控制所述抽象类继承所述下载接口,所述实现类继承所述抽象类之后,所述方法还包括:
控制所述抽象类复写M个所述回调函数;
控制所述实现类复写N个所述目标回调函数;
所述抽象类将N个所述目标回调信息发送给所述实现类,包括:
所述抽象类对M个所述回调信息进行透明传输;
根据所述实现类复写的N个所述目标回调函数,将N个所述目标回调函数生成的N个所述目标回调信息发送给所述实现类。
可选的,在所述抽象类将N个所述目标回调信息发送给所述实现类之前,所述方法还包括:
所述抽象类在接收M个所述回调信息之后,按照预设条件对所述M个所述回调信息进行筛选,筛选出N个所述目标回调信息。
第二方面,本发明提供了一种获得下载接口回调信息的装置,包括:
构建模块,用于在下载接口和需要获得N个目标回调信息的实现类之间构建一抽象类;N为正整数;
继承控制模块,用于控制所述抽象类继承所述下载接口,以及所述实现类继承所述抽象类;
第一发送模块,用于将所述下载接口的包括N个所述目标回调信息的M个回调信息发送给所述抽象类;M为大于等于N的正整数;
第二发送模块,用于将所述抽象类接收的N个所述目标回调信息发送给所述实现类;
获得模块,用于所述实现类通过所述抽象类获得N个所述目标回调信息。
可选的,所述装置还包括:
拆分模块,用于在控制所述抽象类继承所述下载接口之前,将所述下载接口拆分为多个下载子接口,其中,N个目标回调信息由多个所述下载子接口中的第一下载子接口提供;
所述继承控制模块用于控制所述抽象类继承所述第一下载子接口。
可选的,所述拆分模块用于将所述下载接口所封装的生成M个所述回调信息的M个回调函数中划分为多个集合,每个所述集合包括至少一个所述回调函数,生成N个所述目标回调信息的N个目标回调函数划分在第一集合中,并且所述第一集合还包括其他K个回调函数,其中K为自然数;将每个所述集合所包括至少一个所述回调函数封装为一个下载子接口,其中,所述第一集合包括的N+K所述回调函数封装到所述第一下载子接口中。
可选的,所述装置还包括:
第一复写控制模块,控制所述抽象类复写M个所述回调函数;
第二复写控制模块,用于控制所述实现类复写N个所述目标回调函数;
所述第二发送模块用于在所述抽象类中对M个所述回调信息进行透明传输;根据所述实现类复写的N个所述目标回调函数,将N个所述目标回调函数生成的N个所述目标回调信息发送给所述实现类。
可选的,所述装置还包括:
筛选模块,用于在所述抽象类将N个所述目标回调信息发送给所述实现类之前,所述抽象类在接收M个所述回调信息之后,按照预设条件对所述M个所述回调信息进行筛选,筛选出N个所述目标回调信息。
第三方面,本发明提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现第一方面任一项所述方法的步骤。
第四方面,本发明提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现第一方面任一项所述方法的步骤。
本申请实施例中的上述一个或多个技术方案,至少具有如下一种或多种技术效果:
在本发明实施例的技术方案中,首先在下载接口和需要获得N个目标回调信息的实现类之间构建一抽象类,N为正整数,然后控制所述抽象类继承所述下载接口,以及所述实现类继承所述抽象类,所述下载接口将包括N个所述目标回调信息的M个回调信息发送给所述抽象类,M为大于等于N的正整数,然而所述抽象类仅将N个所述目标回调信息发送给所述实现类,所述实现类通过所述抽象类就获得了N个所述目标回调信息,而不会获得冗余的M-N个回调信息,故而解决了实现类,即接收者被动获得大量冗余信息的技术问题,实现了接收者仅获得自己关注的目标回调信息而不需要被动获得全部回调信息的技术效果,故而降低了信息冗余量。
附图说明
图1为本发明实施例中获得下载接口回调信息的方法流程图;
图2为本发明实施例中三层架构示意图;
图3为本发明实施例中获得下载接口回调信息的装置结构示意图;
图4为本发明实施例中计算机设备的结构示意图。
具体实施方式
本发明实施例提供了一种获得下载接口回调信息的方法和装置,用于解决接收者被动获得大量冗余信息的技术问题,实现接收者主要获得其关注的中间状态对应的回调信息的技术效果。
为了解决上述技术问题,本发明提供的技术方案总体思路如下:
在本发明实施例的技术方案中,首先在下载接口和需要获得N个目标回调信息的实现类之间构建一抽象类,N为正整数,然后控制所述抽象类继承所述下载接口,以及所述实现类继承所述抽象类,所述下载接口将包括N个所述目标回调信息的M个回调信息发送给所述抽象类,M为大于等于N的正整数,然而所述抽象类仅将N个所述目标回调信息发送给所述实现类,所述实现类通过所述抽象类就获得了N个所述目标回调信息,而不会获得冗余的M-N个回调信息,故而解决了实现类,即接收者被动获得大量冗余信息的技术问题,实现了接收者仅获得自己关注的目标回调信息而不需要被动获得全部回调信息的技术效果,故而降低了信息冗余量。
下面通过附图以及具体实施例对本发明技术方案做详细的说明,应当理解本申请实施例以及实施例中的具体特征是对本申请技术方案的详细的说明,而不是对本申请技术方案的限定,在不冲突的情况下,本申请实施例以及实施例中的技术特征可以相互组合。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
本发明第一方面提供了一种获得下载接口回调信息的方法,请参考图1,为本发明实施例中获得下载接口回调信息的方法流程图。该方法包括:
S101:在下载接口和需要获得N个目标回调信息的实现类之间构建一抽象类;N为正整数;
S102:控制所述抽象类继承所述下载接口,以及所述实现类继承所述抽象类;
S103:所述下载接口将包括N个所述目标回调信息的M个回调信息发送给所述抽象类;M为大于等于N的正整数;
S104:所述抽象类将N个所述目标回调信息发送给所述实现类;
S105:所述实现类通过所述抽象类获得N个所述目标回调信息。
具体来讲,在本发明实施例中,将下载接口的接收者设置为实现类。下载接口中封装有M个回调函数,每个回调函数对应一种下载状态,根据下载过程的具体情况,运行不同的回调函数生成回调信息。接收者通过下载接口传输的回调信息确定下载状态。举例来说,下载接口封装有如下9个回调函数,9个回调函数的名称即对应的下载状态具体如下:
下载成功,DONWLAD_SUCCESS,
下载失败,DOWNLOAD_FAIL,
下载进度,DOWNLOAD_PROGRESS,
下载开始,DOWNLOAD_START,
下载暂停,DOWNLOAD_STOP,
下载重试,DOWNLOAD_RETRY,
下载数量,DOWNLOAD_NUM,
下载优先级,DOWNLOAD_PROTRY,
下载时间,DOWNLOAD_TIME。
在本发明实施例中,上述9个回调函数的具体代码和执行逻辑就不再详细赘述了,本领域普通技术人员可以根据实际需要进行设置。
在现有技术中,实现类与下载接口之间只有两层架构的,具体地,实现类直接继承下载接口。根据继承规则,实现类必须复写下载接口中的全部M个回调函数,进而实现类将接收下载接口提供的全部M个回调信息。而在本发明实施例中,接收者并不关注下载的全部状态,只关注其中的N个状态。其中,该N个状态对应的回调信息本发明实施例称为目标回调信息。因此,对接收者而言,其余M-N个回调信息是冗余的。其中,N和M均为正整数,且M>N。
沿用上文中的例子来说,M=9,假设接收者关注的状态为下载成功和下载失败,故而N=2,目标回调信息具体为DONWLAD_SUCCESS生成的回调信息和DOWNLOAD_FAIL生成的回调信息。而其余8个回调函数生成的回调信息对接收者而言,是冗余信息。
而在本发明实施例中,实现类与下载接口之间具有三层架构,如图2所示。具体来讲,在S101中,首先构建一抽象类。然后,在S102中,控制该抽象类继承下载接口,而实现类则继承抽象类。
在下载过程中,下载接口的M个回调函数将陆续生成M个回调信息。在S103中,下载接口将M个回调信息发送给抽象类。然后,S104中,在本发明实施例中,而是仅仅将实现类关注的N个目标回调信息发送给实现类,而不会将其余M-N个回调信息也发送给实现类。因此,在S105中,实现类最终通过抽象类就获得了N个目标回调信息,而不会被动地再接收冗余的M-N个回调信息。
由上述描述可知,通过在下载接口与实现类之间构建抽象类,并让该抽象类继承下载接口,而实现类继承抽象类,由此在下载接口将全部回调信息发送到抽象类之后,抽象类仅将实现类需要的目标回调信息发送给实现类,而不会再将全部回调信息发送给实现类,故而解决了接收者被动获得大量冗余信息的技术问题,实现了接收者主要获得其关注的中间状态对应的回调信息的技术效果,降低了信息的冗余量。
本领域技术人员应当理解,本发明实施例中的抽象类是不将接收者并不关注的M-N个回调信息发送给实现者,但是其他的信息,例如下载接口的身份信息或异常信息等,抽象类依然会发送给实现类,以保证实现类可以正常接收其他信息。同时,由于下载接口发送的绝大部分信息都是回调信息,所以本发明实施例中的接收者主要获得其关注的中间状态对应的回调信息。
进一步,作为一种可选的实施例,在S101之前,还包括:
将所述下载接口拆分为多个下载子接口,其中,N个目标回调信息由多个所述下载子接口中的第一下载子接口提供;
控制所述抽象类继承所述下载接口,包括:
控制所述抽象类继承所述第一下载子接口。
具体来讲,在下载过程中为了详细描述下载过程,会定义很多状态,故而下载接口中包括的回调函数数量庞大,代码量也很大,进而导致下载接口的维护难度大。为了减少信息冗余量,同时降低下载接口维护的难度,在本发明实施例中,将下载接口拆分为多个下载子接口。
具体来讲,原始下载接口中封装有M个回调函数,拆分出的每个下载子接口则封装至少一个回调函数。其中,生成N个目标回调信息的N个目标回调函数封装在同一个下载子接口中,在本发明实施例中,将该下载子接口称为第一下载子接口。进而,接收者需要的N个目标回调信息就由第一下载子接口提供。那么,由于N个目标回调信息均由第一下载子接口提供,进而只需要构建一个抽象类,而不需要构建多个抽象类,节约了资源,减少了代码。
进一步,在控制抽象类继承下载接口时,由于下载接口已经拆分成了多个下载子接口,并且N个目标回调信息由第一下载子接口提供,故而对于一个实现类,其对应的那一个抽象类具体继承第一下载子接口即可。当实现类有多个时,则根据每个实现类所关注的目标回调信息,控制抽象类继承对应的下载子接口,实现类再继承相应的一个抽象类即可。
具体地,本发明实施例中,将下载接口拆分成多个下载子接口,通过如下过程实现:
将所述下载接口所封装的生成M个所述回调信息的M个回调函数中划分为多个集合,每个所述集合包括至少一个所述回调函数,生成N个所述目标回调信息的N个目标回调函数划分在第一集合中,并且所述第一集合还包括其他K个回调函数,其中K为自然数;
将每个所述集合所包括至少一个所述回调函数封装为一个下载子接口,其中,所述第一集合包括的N+K所述回调函数封装到所述第一下载子接口中。
具体来讲,首先,将下载接口的M个回调函数划分为多个集合。每个集合包括至少一个回调函数。在一种实现方式中,可以从功能上将相关程度较高的回调函数划分为一个集合。沿用上文中的9个回调函数来说,DONWLAD_SUCCESS、DOWNLOAD_FAIL、DOWNLOAD_PROGRESS、DOWNLOAD_START和DOWNLOAD_STOP都是体现真实下载业务的状态,因此相关程度高,因此可以将DONWLAD_SUCCESS、DOWNLOAD_FAIL、DOWNLOAD_PROGRESS、DOWNLOAD_START和DOWNLOAD_STOP划分到一个集合中。再举例来说,DOWNLOAD_RETRY、DOWNLOAD_NUM、DOWNLOAD_PROTRY和DOWNLOAD_TIME都是表示下载周边的辅助业务,因此相关程度高,因此可以将DOWNLOAD_RETRY、DOWNLOAD_NUM、DOWNLOAD_PROTRY和DOWNLOAD_TIME划分到一个集合中。
或者,在另一种实施方式中,可以对M个回调函数进行优先级划分,然后将优先级相同的回调函数划分到一个集合中。或者,在另一种实施方式中,还可以将实现者关注的N个回调信息对应N个回调函数划分到一个集合中,然后将其余M-N个回调函数划分到一个集合中。在具体实现过程中,包括但不限于以上几种实施方式。本发明所属领域的普通技术人员可以根据实际进行选择,本发明不做具体限制。
接下来,将每个集合包括的至少一个回调函数封装到一个下载子接口中。在本发明实施例中,N个目标回调函数被划分到同一个集合中,进而N个目标回调函数可以被封装在同一个下载子接口中,即第一下载子接口中。同时,在具体实现过程中,该集合中还可以进一步包括其他K个回调函数。K为自然数,例如0,1或4等。
举例来说,将上文下载接口的9个回调函数划分为两个集合,第一个集合包括表示真实下载业务的DONWLAD_SUCCESS、DOWNLOAD_FAIL、DOWNLOAD_PROGRESS、DOWNLOAD_START和DOWNLOAD_STOP;第二个集合包括下载周边的辅助业务的DOWNLOAD_RETRY、DOWNLOAD_NUM、DOWNLOAD_PROTRY和DOWNLOAD_TIME。
将DONWLAD_SUCCESS、DOWNLOAD_FAIL、DOWNLOAD_PROGRESS、DOWNLOAD_START和DOWNLOAD_STOP封装到名为IDownload的下载子接口中,将DOWNLOAD_RETRY、DOWNLOAD_NUM、DOWNLOAD_PROTRY和DOWNLOAD_TIME封装到名为IDownloadInfo的下载子接口中。目标回调信息具体为DONWLAD_SUCCESS生成的回调信息和DOWNLOAD_FAIL生成的回调信息,因此,下载子接口IDownload为第一下载子接口,DONWLAD_SUCCESS和DOWNLOAD_FAIL为目标回调函数,而DOWNLOAD_PROGRESS、DOWNLOAD_START和DOWNLOAD_STOP则为其他的K个回调函数。
接下来,控制抽象类继承下载子接口IDownload,实现类继承抽象类。
由上述描述可以看出,通过将代码量庞大的下载接口拆分成多个下载子接口,并且将N个目标回调函数封装在一个下载子接口中,就简化了下载接口的代码量,使得维护下载接口更加容易。
另外,在本发明实施例中,抽象类仅向实现类发送N个目标回调信息具体实现方式有以下两种。
第一种:
在第一种实现方式中,在S102之后,还包括:
控制所述抽象类复写M个所述回调函数;
控制所述实现类复写N个所述目标回调函数;
进而,S104具体包括:
所述抽象类对M个所述回调信息进行透明传输;
根据所述实现类复写的N个所述目标回调函数,将N个所述目标回调函数生成的N个所述目标回调信息发送给所述实现类。
具体来讲,由于继承下载接口的是抽象类,根据继承规则,抽象类必须复写下载接口的全部M个回调函数。同时,在本发明实施例中,为了保证最终提供给实现类的回调信息与下载接口提供给抽象类的回调信息保持一致,本发明实施例在抽象类中复写的回调函数具体为空函数,以实现回调函数在抽象类中透明传输。
本发明所述空函数指的是具有完整函数形式却不执行处理逻辑的函数。举例来说,假设回调函数DONWLAD_SUCCESS具体为:
DONWLAD_SUCCESS{
***
}
其中,“***”表示DONWLAD_SUCCESS的执行处理逻辑的代码,此处就不详细写出了。在抽象类中,复写DONWLAD_SUCCESS时,对应复写的空函数为:
DONWLAD_SUCCESS{
}
进一步,由于实现类继承的是抽象类,根据继承规则,实现类可以不复写抽象类中的全部函数,只复写抽象类的一个或多个函数。因此,在本发明实施例中,根据接收者所关注的N个目标回调信息,在实现类中复写生成N个目标回调信息的N个目标回调函数,进而使得抽象类可以将N个目标回调信息发送到实现类。
沿用上文中的例子来说,如果目标回调信息包括DONWLAD_SUCCESS生成的回调信息,那么在实现类中,复写抽象类的空函数DONWLAD_SUCCESS{}时,具体复写的函数为:
DONWLAD_SUCCESS{
***
}
那么,在S104中,当抽象类接收到M个回调信息时,由于M个回调函数在抽象类中复写为空函数,因此抽象类透明传输M个回调信息。进一步,由于实现类仅复写了N个目标回调函数,并没有复写其余M-N个回调函数,因此,抽象类只会将N个目标回调函数对应的N个目标回调信息发送给实现类,其余M-N个回调信息则不会发送给实现类。
由上述描述可知,通过控制抽象类将M个回调函数复写为空函数,并控制实现类只复写N个目标回调函数,一方面M个回调信息能在抽象类中仅进行透明传输,保证了目标回调信息的原始性,另一方面,实现了实现类不再接收其余M-N个冗余回调信息。
另外,如果抽象类具体继承的是第一下载子接口,则抽象类具体复写第一下载子接口中N+K个回调函数,实现类仍然复写N个目标回调函数。具体实现过程与上述继承下载接口类似,这里就不详细赘述了。
第二种:
在第二种实现方式中,在S104之前,还包括:
所述抽象类在接收M个所述回调信息之后,按照预设条件对所述M个所述回调信息进行筛选,筛选出N个所述目标回调信息。
具体来讲,与第一种实施方式不同的是,在第二种实施方式中,抽象类不进行透明传输,而是会对M个回调信息进行筛选。
具体来讲,在构建出抽象类后,根据所需要的N个目标回调信息,编写抽象类筛选目标回调信息的筛选函数。进而,在抽象类获得M个回调信息后,执行筛选函数,得到N个目标回调信息。
进一步,在该种实施方式中,抽象类还可以筛选出M-N个回调信息中的异常信息。具体来讲,尽管接收者不关注其余M-N个回调信息,但是,为了在出现异常情况的时候能够及时通知接收者,抽象类还会对M-N个回调信息进行异常检查。换言之,抽象类会判断其余的M-N个回调信息所表示的状态是否异常,如果其余M-N个回调信息所表示的状态正常,则下载过程正常,那么抽象类不会将该M-N个回调信息发送给实现类;如果其余M-N个回调信息中有一个或多个回调信息所表示的状态异常,则下载过程异常,那么抽象类将N个目标回调信息发送给实现类之外,还会将异常状态的回调信息也发送给实现者。
举例来说,沿用上文中的例子,目标回调信息具体为DONWLAD_SUCCESS生成的回调信息和DOWNLOAD_FAIL生成的回调信息。在接收到回调信息后,抽象类筛选出目标回调信息。对于未被筛选成目标回调信息的其余回调信息,抽象类判断这些其余回调信息所表示的下载状态是否异常。假设回调函数DOWNLOAD_TIMES返回的下载时间超时,那么即使下载时间是接收者不关注的,但为了通知接收者对超时问题进行处理,抽象类依然会将下载时间发送给实现类。
通过对其余的M-N个回调信息进行异常检查,在出现表示异常的回调信息时将该回调信息发送给实现类,避免了由于实现类不关注其余回调信息而导致无法及时知晓下载过程异常,实现了强制上报异常的技术效果。
基于与前述实施例中获得下载接口回调信息的方法同样的发明构思,本发明第二方面还提供一种获得下载接口回调信息的装置,如图3所示,包括:
构建模块101,用于在下载接口和需要获得N个目标回调信息的实现类之间构建一抽象类;N为正整数;
继承控制模块102,用于控制所述抽象类继承所述下载接口,以及所述实现类继承所述抽象类;
第一发送模块103,用于将所述下载接口的包括N个所述目标回调信息的M个回调信息发送给所述抽象类;M为大于等于N的正整数;
第二发送模块104,用于将所述抽象类接收的N个所述目标回调信息发送给所述实现类;
获得模块105,用于所述实现类通过所述抽象类获得N个所述目标回调信息。
可选的,获得下载接口回调信息的装置还包括:
拆分模块,用于在控制所述抽象类继承所述下载接口之前,将所述下载接口拆分为多个下载子接口,其中,N个目标回调信息由多个所述下载子接口中的第一下载子接口提供;
继承控制模块102用于控制所述抽象类继承所述第一下载子接口。
具体来讲,拆分模块用于将所述下载接口所封装的生成M个所述回调信息的M个回调函数中划分为多个集合,每个所述集合包括至少一个所述回调函数,生成N个所述目标回调信息的N个目标回调函数划分在第一集合中,并且所述第一集合还包括其他K个回调函数,其中K为自然数;将每个所述集合所包括至少一个所述回调函数封装为一个下载子接口,其中,所述第一集合包括的N+K所述回调函数封装到所述第一下载子接口中。
可选的,所述装置还包括:
第一复写控制模块,控制所述抽象类复写M个所述回调函数;
第二复写控制模块,用于控制所述实现类复写N个所述目标回调函数;
第二发送模块104用于在所述抽象类中对M个所述回调信息进行透明传输;根据所述实现类复写的N个所述目标回调函数,将N个所述目标回调函数生成的N个所述目标回调信息发送给所述实现类。
可选的,获得下载接口回调信息的装置还包括:
筛选模块,用于在所述抽象类将N个所述目标回调信息发送给所述实现类之前,所述抽象类在接收M个所述回调信息之后,按照预设条件对所述M个所述回调信息进行筛选,筛选出N个所述目标回调信息。
前述图1-图2实施例中的获得下载接口回调信息的方法的各种变化方式和具体实例同样适用于本实施例的获得下载接口回调信息的装置,通过前述对获得下载接口回调信息的方法的详细描述,本领域技术人员可以清楚的知道本实施例中获得下载接口回调信息的装置的实施方法,所以为了说明书的简洁,在此不再详述。
基于与前述实施例中获得下载接口回调信息的方法同样的发明构思,本发明还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前文任一所述方法的步骤。
基于与前述实施例中获得下载接口回调信息的方法同样的发明构思,本发明还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现前文任一所述方法的步骤。
其中,在图4中,总线架构(用总线200来代表),总线200可以包括任意数量的互联的总线和桥,总线200将包括由处理器202代表的一个或多个处理器和存储器204代表的存储器的各种电路链接在一起。总线200还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口206在总线200和接收器201和发送器203之间提供接口。接收器201和发送器203可以是同一个元件,即收发机,提供用于在传输介质上与各种其他装置通信的单元。
处理器202负责管理总线200和通常的处理,而存储器204可以被用于存储处理器202在执行操作时所使用的数据。
本申请实施例中的上述一个或多个技术方案,至少具有如下一种或多种技术效果:
在本发明实施例的技术方案中,首先在下载接口和需要获得N个目标回调信息的实现类之间构建一抽象类,N为正整数,然后控制所述抽象类继承所述下载接口,以及所述实现类继承所述抽象类,所述下载接口将包括N个所述目标回调信息的M个回调信息发送给所述抽象类,M为大于等于N的正整数,然而所述抽象类仅将N个所述目标回调信息发送给所述实现类,所述实现类通过所述抽象类就获得了N个所述目标回调信息,而不会获得冗余的M-N个回调信息,故而解决了实现类,即接收者被动获得大量冗余信息的技术问题,实现了接收者仅获得自己关注的目标回调信息而不需要被动获得全部回调信息的技术效果,故而降低了信息冗余量。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (6)

1.一种获得下载接口回调信息的方法,其特征在于,包括:
在下载接口和需要获得N个目标回调信息的实现类之间构建一抽象类;N为正整数;
将所述下载接口拆分为多个下载子接口,其中,N个目标回调信息由多个所述下载子接口中的第一下载子接口提供,包括:将所述下载接口所封装的生成M个回调信息的M个回调函数中划分为多个集合,每个所述集合包括至少一个所述回调函数,生成N个所述目标回调信息的N个目标回调函数划分在第一集合中,并且所述第一集合还包括其他K个回调函数,其中K为自然数;M为大于等于N的正整数;将每个所述集合所包括至少一个所述回调函数封装为一个下载子接口,其中,所述第一集合包括的N+K所述回调函数封装到所述第一下载子接口中;
控制所述抽象类继承所述下载接口,以及所述实现类继承所述抽象类,包括:控制所述抽象类继承所述第一下载子接口;
所述下载接口将包括N个所述目标回调信息的M个所述回调信息发送给所述抽象类;
所述抽象类将N个所述目标回调信息发送给所述实现类;
所述实现类通过所述抽象类获得N个所述目标回调信息。
2.如权利要求1所述的方法,其特征在于,在控制所述抽象类继承所述下载接口,所述实现类继承所述抽象类之后,所述方法还包括:
控制所述抽象类复写M个所述回调函数;
控制所述实现类复写N个所述目标回调函数;
所述抽象类将N个所述目标回调信息发送给所述实现类,包括:
所述抽象类对M个所述回调信息进行透明传输;
根据所述实现类复写的N个所述目标回调函数,将N个所述目标回调函数生成的N个所述目标回调信息发送给所述实现类。
3.如权利要求1所述的方法,其特征在于,在所述抽象类将N个所述目标回调信息发送给所述实现类之前,所述方法还包括:
所述抽象类在接收M个所述回调信息之后,按照预设条件对所述M个所述回调信息进行筛选,筛选出N个所述目标回调信息。
4.一种获得下载接口回调信息的装置,其特征在于,包括:
构建模块,用于在下载接口和需要获得N个目标回调信息的实现类之间构建一抽象类;N为正整数;
拆分模块,用于在控制所述抽象类继承所述下载接口之前,将所述下载接口拆分为多个下载子接口,其中,N个目标回调信息由多个所述下载子接口中的第一下载子接口提供;包括:将所述下载接口所封装的生成M个回调信息的M个回调函数中划分为多个集合,每个所述集合包括至少一个所述回调函数,生成N个所述目标回调信息的N个目标回调函数划分在第一集合中,并且所述第一集合还包括其他K个回调函数,其中K为自然数;M为大于等于N的正整数;将每个所述集合所包括至少一个所述回调函数封装为一个下载子接口,其中,所述第一集合包括的N+K所述回调函数封装到所述第一下载子接口中;
继承控制模块,用于控制所述抽象类继承所述下载接口,以及所述实现类继承所述抽象类,其中,所述继承控制模块用于控制所述抽象类继承所述第一下载子接口;
第一发送模块,用于将所述下载接口的包括N个所述目标回调信息的M个所述回调信息发送给所述抽象类;
第二发送模块,用于将所述抽象类接收的N个所述目标回调信息发送给所述实现类;
获得模块,用于所述实现类通过所述抽象类获得N个所述目标回调信息。
5.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1-3任一项所述方法的步骤。
6.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1-3任一项所述方法的步骤。
CN201710463659.4A 2017-06-19 2017-06-19 一种获得下载接口回调信息的方法和装置 Active CN109144597B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710463659.4A CN109144597B (zh) 2017-06-19 2017-06-19 一种获得下载接口回调信息的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710463659.4A CN109144597B (zh) 2017-06-19 2017-06-19 一种获得下载接口回调信息的方法和装置

Publications (2)

Publication Number Publication Date
CN109144597A CN109144597A (zh) 2019-01-04
CN109144597B true CN109144597B (zh) 2021-09-07

Family

ID=64804257

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710463659.4A Active CN109144597B (zh) 2017-06-19 2017-06-19 一种获得下载接口回调信息的方法和装置

Country Status (1)

Country Link
CN (1) CN109144597B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101969469A (zh) * 2010-10-25 2011-02-09 华为技术有限公司 电信能力开放中的回调处理方法及装置
CN103595770A (zh) * 2013-10-29 2014-02-19 北京奇虎科技有限公司 Sdk实现文件下载的方法与装置
CN103595769A (zh) * 2013-10-29 2014-02-19 北京奇虎科技有限公司 Sdk实现文件上传的方法与装置
CN103761121A (zh) * 2013-12-31 2014-04-30 深圳英飞拓科技股份有限公司 一种嵌入式系统及其系统实现方法
CN104572097A (zh) * 2014-12-30 2015-04-29 广东欧珀移动通信有限公司 一种拍照数据回调处理方法以及装置
CN105335131A (zh) * 2014-06-03 2016-02-17 广州市动景计算机科技有限公司 传感器接口处理方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8910127B2 (en) * 2012-09-20 2014-12-09 Identify Software Ltd. (IL) Estimating indirect interface implementation before load time based on directly implemented methods

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101969469A (zh) * 2010-10-25 2011-02-09 华为技术有限公司 电信能力开放中的回调处理方法及装置
CN103595770A (zh) * 2013-10-29 2014-02-19 北京奇虎科技有限公司 Sdk实现文件下载的方法与装置
CN103595769A (zh) * 2013-10-29 2014-02-19 北京奇虎科技有限公司 Sdk实现文件上传的方法与装置
CN103761121A (zh) * 2013-12-31 2014-04-30 深圳英飞拓科技股份有限公司 一种嵌入式系统及其系统实现方法
CN105335131A (zh) * 2014-06-03 2016-02-17 广州市动景计算机科技有限公司 传感器接口处理方法及装置
CN104572097A (zh) * 2014-12-30 2015-04-29 广东欧珀移动通信有限公司 一种拍照数据回调处理方法以及装置

Also Published As

Publication number Publication date
CN109144597A (zh) 2019-01-04

Similar Documents

Publication Publication Date Title
CN111080449B (zh) 区块链的跨链交易方法、管理节点、区块链网络
CN102693153B (zh) 在静态分配和嵌入的软件结构上进行动态分配的方法
CN106201566A (zh) 利博伟特软件热升级方法及设备
EP0859314A2 (en) Distributed make methods, apparatus, and computer program products
CN102147747B (zh) 增强的升级路径的系统和方法
US11022950B2 (en) Resilient failover of industrial programmable logic controllers
CN111932257B (zh) 一种区块链并行化处理方法及装置
US10795793B1 (en) Method and system for simulating system failures using domain-specific language constructs
CN111857733B (zh) 一种业务环境的构建方法、装置、系统以及可读存储介质
CN106155745A (zh) 基本输入输出系统的升级方法、装置和系统
CN107430659B (zh) 用于在功能安全的电气、电子和/或可编程电子系统中处理和传递数据的方法和设备
CN113687858A (zh) 配置文件的检查方法、装置、电子设备及存储介质
CN109144597B (zh) 一种获得下载接口回调信息的方法和装置
CN111562942B (zh) 基于Gitlab的移动APP持续集成装置和方法
JP6577901B2 (ja) 計算機システムおよびシステム状態再現方法
CN116400987A (zh) 持续集成方法、装置、电子设备及存储介质
CN110874473A (zh) 病毒检测方法、装置及系统、云服务系统、存储介质
CN109189444A (zh) 一种服务器虚拟化系统的管理节点的升级控制方法及装置
CN111090575B (zh) 测试方法
CN111615819B (zh) 一种传输数据的方法和装置
Frtunikj Safety framework and platform for functions of future automotive E/E systems
CN113900741B (zh) 基于插件的业务处理方法、装置、计算机设备以及介质
Kreitz Automated fast-track reconfiguration of group communication systems
US20230089528A1 (en) Method to execute a mode-transition in a multi-mode computer system
KR102514114B1 (ko) 딥러닝 모델 기반의 서비스 제공을 위한 원격 서버 가상화 운용 방법, 시스템 및 컴퓨터 프로그램

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