消息处理方法、装置及电子设备转让专利

申请号 : CN201710648064.6

文献号 : CN107463380B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 张磊陈少杰张文明

申请人 : 武汉斗鱼网络科技有限公司

摘要 :

本发明提供一种消息处理方法、装置及电子设备,方法及装置应用于包括多个业务逻辑的应用程序。方法包括:基于设置在目标业务逻辑的实现类中的判断条件,在抽象类种判断目标业务逻辑是否需要异步处理消息,该实现类继承于该抽象类;在目标业务逻辑需要异步处理消息时,判断该抽象类中是否实例化有异步消息处理类,若未实例化,则实例化异步消息处理类;在该实现类中调用异步消息处理类的实例化对象,对目标业务逻辑的消息进行处理。如此,可以仅在抽象类中实例化异步消息处理类,应用程序中的各业务逻辑在需要异步处理消息时调用该异步消息处理类的实例化对象即可实现消息的异步处理,大大降低了内存开销,提高了开发效率。

权利要求 :

1.一种消息处理方法,其特征在于,应用于实现多个业务逻辑的应用程序,所述方法包括:基于设置在目标业务逻辑的实现类中的判断条件,在抽象类中判断所述目标业务逻辑是否需要异步处理消息,所述实现类继承于所述抽象类;

在所述目标业务逻辑需要异步处理消息时,判断所述抽象类中是否实例化有异步消息处理类,若未实例化,则实例化所述异步消息处理类;

在所述实现类中调用所述异步消息处理类的实例化对象,对所述目标业务逻辑的消息进行处理;

其中,基于设置在目标业务逻辑的实现类中的判断条件,在抽象类中判断所述目标业务逻辑是否需要异步处理消息的步骤,包括:在所述抽象类中声明构造方法以及抽象的开关方法;

在所述实现类中重写并实现所述开关方法,使所述开关方法的返回值与所述目标业务逻辑是否需要异步处理消息相对应;

在所述构造方法中调用所述开关方法,并基于所述开关方法的返回值确定所述目标业务逻辑是否需要异步处理消息。

2.根据权利要求1所述的方法,其特征在于,判断所述抽象类中是否实例化有异步消息处理类的步骤,包括:获取对象获取方法的返回值,所述对象获取方法用于获取所述异步消息处理类的实例化对象并返回;

在所述对象获取方法的返回值为空时,确定所述抽象类中未实例化异步消息处理类;

在执行判断所述抽象类中是否实例化有异步消息处理类的步骤之前,所述方法还包括:在所述抽象类中声明所述对象获取方法。

3.根据权利要求2所述的方法,其特征在于,在所述实现类中调用所述异步消息处理类的实例化对象,对所述目标业务逻辑的消息进行处理的步骤,包括:在所述实现类中调用所述对象获取方法,获取所述异步消息处理类的实例化对象;

通过获取到的实例化对象对所述目标业务逻辑的消息进行处理。

4.一种消息处理装置,其特征在于,应用于实现多个业务逻辑的应用程序,所述装置包括:判断模块,用于基于设置在目标业务逻辑的实现类中的判断条件,在抽象类中判断所述目标业务逻辑是否需要异步处理消息,所述实现类继承于所述抽象类;

实例化模块,用于在所述目标业务逻辑需要异步处理消息时,判断所述抽象类中是否实例化有异步消息处理类,若未实例化,则实例化所述异步消息处理类;

处理模块,用于在所述实现类中调用所述异步消息处理类的实例化对象,对所述目标业务逻辑的消息进行处理;

其中,所述判断模块基于设置在目标业务逻辑的实现类中的判断条件,在抽象类中判断所述目标业务逻辑是否需要异步处理消息的方式,包括:在所述抽象类中声明构造方法以及抽象的开关方法;

在所述实现类中重写并实现所述开关方法,使所述开关方法的返回值与所述目标业务逻辑是否需要异步处理消息相对应;

在所述构造方法中调用所述开关方法,并基于所述开关方法的返回值确定所述目标业务逻辑是否需要异步处理消息。

5.根据权利要求4所述的装置,其特征在于,所述判断模块,包括:第一获取子模块,用于获取对象获取方法的返回值,所述对象获取方法用于获取所述异步消息处理类的实例化对象并返回;

确定子模块,用于在所述对象获取方法的返回值为空时,确定所述抽象类中未实例化异步消息处理类;

所述装置还包括:

对象获取模块,用于在判断所述抽象类中是否实例化有异步消息处理类之前,在所述抽象类中声明所述对象获取方法。

6.根据权利要求5所述的装置,其特征在于,所述处理模块包括:第二获取子模块,用于在所述实现类中调用所述对象获取方法,获取所述异步消息处理类的实例化对象;

处理子模块,用于通过获取到的实例化对象对所述目标业务逻辑的消息进行处理。

7.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被执行时实现权利要求1~3任一项所述的方法。

说明书 :

消息处理方法、装置及电子设备

技术领域

[0001] 本发明涉及通信技术领域,具体而言,涉及一种消息处理方法、装置及电子设备。

背景技术

[0002] 一个应用程序通常需要实现多个业务逻辑,用于独立完成一个业务逻辑的程序代码属于一个层级。有时各个层级的程序代码可能需要执行耗时的操作,并且在该操作执行完毕时需要对应用程序的用户界面进行更新。针对这类操作,现有的做法是开辟一个单独的子线程来执行,以免造成用户界面的阻塞。而用户界面的更新需要在应用程序的主线程进行,这就要求子线程将操作执行的结果传递到主线程,以使用户界面更新。
[0003] 目前,通常采用异步消息处理类来实现子线程与主线程之间的消息传递。现有的做法是在应用程序中需要进行异步消息处理的层级中对异步消息处理类进行实例化,这就导致应用程序中有多个层级都实例化有异步消息处理对象,会导致内存的开销增大。同时,在多个层级中实例化异步消息处理对象会导致重复开发的问题,既降低了开发效率,又浪费了开发成本。

发明内容

[0004] 有鉴于此,本发明的目的在于提供一种消息处理方法、装置及电子设备,以改善上述问题。
[0005] 为了达到上述目的,本发明实施例提供一种消息处理方法,应用于实现多个业务逻辑的应用程序,所述方法包括:
[0006] 基于设置在目标业务逻辑的实现类中的判断条件,在抽象类中判断所述目标业务逻辑是否需要异步处理消息,所述实现类继承于所述抽象类;
[0007] 在所述目标业务逻辑需要异步处理消息时,判断所述抽象类中是否实例化有异步消息处理类,若未实例化,则实例化所述异步消息处理类;
[0008] 在所述实现类中调用所述异步消息处理类的实例化对象,对所述目标业务逻辑的消息进行处理。
[0009] 可选地,在上述方法中,基于设置在目标业务逻辑的实现类中的判断条件,在抽象类中判断所述目标业务逻辑是否需要异步处理消息的步骤,包括:
[0010] 在所述抽象类中声明构造方法以及抽象的开关方法;
[0011] 在所述实现类中重写并实现所述开关方法,使所述开关方法的返回值与所述目标业务逻辑是否需要异步处理消息相对应;
[0012] 在所述构造方法中调用所述开关方法,并基于所述开关方法的返回值确定所述目标业务逻辑是否需要异步处理消息。
[0013] 可选地,在上述方法中,判断所述抽象类中是否实例化有异步消息处理类的步骤,包括:
[0014] 获取对象获取方法的返回值,所述对象获取方法用于获取所述异步消息处理类的实例化对象并返回;
[0015] 在所述对象获取方法的返回值不为空时,确定所述抽象类中未实例化异步消息处理类;
[0016] 在执行判断所述抽象类中是否实例化有异步消息处理类的步骤之前,所述方法还包括:
[0017] 在所述抽象类中声明所述对象获取方法。
[0018] 可选地,在上述方法中,在所述实现类中调用所述异步消息处理类的实例化对象,对所述目标业务逻辑的消息进行处理的步骤,包括:
[0019] 在所述实现类中调用所述对象获取方法,获取所述异步消息处理类的实例化对象;
[0020] 通过获取到的实例化对象对所述目标业务逻辑的消息进行处理。
[0021] 本发明实施例还提供一种消息处理装置,应用于实现多个业务逻辑的应用程序,所述装置包括:
[0022] 判断模块,用于基于设置在目标业务逻辑的实现类中的判断条件,在抽象类中判断所述目标业务逻辑是否需要异步处理消息,所述实现类继承于所述抽象类;
[0023] 实例化模块,用于在所述目标业务逻辑需要异步处理消息时,判断所述抽象类中是否实例化有异步消息处理类,若未实例化,则实例化所述异步消息处理类;
[0024] 处理模块,用于在所述实现类中调用所述异步消息处理类的实例化对象,对所述目标业务逻辑的消息进行处理。
[0025] 可选地,在上述装置中,所述判断模块基于设置在目标业务逻辑的实现类中的判断条件,在抽象类中判断所述目标业务逻辑是否需要异步处理消息的方式,包括:
[0026] 在所述抽象类中声明构造方法以及抽象的开关方法;
[0027] 在所述实现类中重写并实现所述开关方法,使所述开关方法的返回值与所述目标业务逻辑是否需要异步处理消息相对应;
[0028] 在所述构造方法中调用所述开关方法,并基于所述开关方法的返回值确定所述目标业务逻辑是否需要异步处理消息。
[0029] 可选地,在上述装置中,所述判断模块包括:
[0030] 第一获取子模块,用于获取对象获取方法的返回值,所述对象获取方法用于获取所述异步消息处理类的实例化对象并返回;
[0031] 确定子模块,用于在所述对象获取方法的返回值不为空时,确定所述抽象类中未实例化异步消息处理类;
[0032] 所述装置还包括:
[0033] 对象获取模块,用于在判断所述抽象类中是否实例化有异步消息处理类之前,在所述抽象类中声明所述对象获取方法。
[0034] 可选地,在上述装置中,所述处理模块包括:
[0035] 第二获取子模块,用于在所述实现类中调用所述对象获取方法,获取所述异步消息处理类的实例化对象;
[0036] 处理子模块,用于通过获取到的实例化对象对所述目标业务逻辑的消息进行处理。
[0037] 一种电子设备,包括存储器、处理器以及存储在所述存储器中并在所述处理器中被执行的计算机程序,所述计算机程序被执行时实现本发明提供的方法。
[0038] 一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被执行时实现本发明提供的方法。
[0039] 本发明实施例提供的消息处理方法、装置及电子设备,在抽象类中判断目标业务逻辑是否需要异步处理消息,在需要且抽象类中未实例化有异步消息处理类的情况下实例化异步消息处理类,并在该目标业务逻辑的实现类中调用异步消息处理类的实例化对象,以实现消息的异步处理。如此,可以仅在抽象类中实例化异步消息处理类,应用程序中的各业务逻辑在需要异步处理消息时调用该异步消息处理类的实例化对象即可实现消息的异步处理,大大降低了内存开销,提高了开发效率。
[0040] 为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图作详细说明。

附图说明

[0041] 为了更清楚地说明本发明实施例的方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0042] 图1为本发明实施例提供的一种电子设备的方框示意图。
[0043] 图2为本发明实施例提供的一种消息处理方法的流程示意图。
[0044] 图3为图2所示步骤S110的子步骤示意图。
[0045] 图4为本发明实施例提供的一种消息处理装置的功能模块框图。
[0046] 图5为本发明实施例提供的消息处理装置的又一功能模块框图。
[0047] 图标:100-电子设备;110-消息处理装置;111-判断模块;1111-第一获取子模块;1112-确定子模块;112-实例化模块;113-处理模块;1131-第二获取子模块;1132-处理子模块;114-对象获取模块;120-存储器;130-处理器;140-显示单元。

具体实施方式

[0048] 下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和展示的本发明实施例的组件可以以各种不同的配置来布置和设计。
[0049] 因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0050] 应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本发明的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
[0051] 如图1所示,是本发明实施例提供的一种电子设备100的方框示意图,所述电子设备100中安装有应用程序,所述应用程序实现多个业务逻辑。每个业务逻辑可由独立的功能模块实现,也即,所述应用程序包括多个功能模块。
[0052] 在本实施例中,所述电子设备100可以是基于Android系统的电子设备。所述电子设备100包括消息处理装置110、存储器120、处理器130以及显示单元140。
[0053] 所述存储器120、处理器130以及显示单元140各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。消息处理装置110包括至少一个可以软件或固件(firmware)的形式存储于存储器120中或固化在电子设备100的操作系统中的软件功能模块。处理器130用于执行存储在存储器120中的可执行模块,例如应用程序以及消息处理装置110所包括的软件功能模块和计算机程序等。
[0054] 其中,存储器120可以是,但不限于,随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-Only Memory,PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-Only Memory,EEPROM)等。
[0055] 处理器130可以是一种集成电路芯片,具有信号处理的能力。上述的处理器也可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(DSP))、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0056] 显示单元140用于建立电子设备100与用户之间的交互界面或用于展示待展示视图(view)。在本实施例中,视图可以理解为安卓(Android)系统中实例化的view对象,可以是图像、文本框等任意可在显示界面展示的信息。
[0057] 所述显示单元140用于建立电子设备100与用户之间的交互界面,或用于显示待显示信息,例如,应用程序的用户界面。
[0058] 应当理解,图1所示的结构仅为示意,电子设备100还可以具有比图1所示更多或更少的组件,也可以具有与图1所示不同的配置。需要说明的是,图1所示的各组件可以硬件、软件或其组合实现。
[0059] 如图2所示,是本发明实施例提供的一种消息处理方法的流程示意图,所述消息处理方法应用于电子设备100中的应用程序,该应用程序可实现多个业务逻辑。下面将对图2所示的具体流程及步骤进行详细阐述。
[0060] 步骤S110,基于设置在目标业务逻辑的实现类中的判断条件,在抽象类中判断所述目标业务逻辑是否需要异步处理消息。
[0061] 在本实施例中,所述应用程序可以是视频播放器。通常情况下,视频播放器可以包括如下多个业务逻辑:视频播放、控制条展示、礼物特效展示以及用户信息展示等。各个业务逻辑可通过相应的功能模块独立实现,在这一情形下,用于实现一个业务逻辑的功能模块属于一个层级。
[0062] 在实际应用中,当各个业务逻辑执行某些操作后,可能需要对用户界面上展示的相应控件进行更新。例如,当控制条更新后,相应地也需要对用户界面上展示的控制条控件更新。也就意味着,某些层级需要通过异步消息处理对象异步地将操作执行结果以消息的形式发送给用户界面(UserInterface,UI)主线程,以便对UI进行更新。
[0063] 传统的做法是分别在需要异步处理消息的层级中实例化异步消息处理类得到对应的异步消息处理对象。但这种做法会导致一个应用程序可能实例化有多个异步消息处理对象,将会导致内存开销增大。
[0064] 在本实施例中,所述异步消息处理类可以为Handler,相应地,异步消息处理对象或异步消息处理类的实例化对象是指Handler对象。
[0065] 经发明人研究发现,虽然各层级需要通过自己的Handler对象异步处理消息,但同一应用程序中各层级所使用的Handler对象实际是相同的。若只实例化一个Handler对象,在各层级需要时获取该Handler对象进行使用,将能够极大地降低内存开销,提高开发效率。
[0066] 因而,为解决上述问题,本发明对应用程序的设计架构做了改进。
[0067] 详细地,构建有一抽象类,并将应用程序中的多个层级都需要实现的业务逻辑在所述抽象类声明和/或实现。该应用程序的各个业务逻辑对应的功能模块则作为继承于所述抽象类的实现类。例如,以上述视频播放器为例,用于实现视频播放的实现类继承于所述抽象类。
[0068] 针对在多个层级中实现的功能完全一致的业务逻辑,可以直接在所述抽象类中实现。针对在多个层级中实现的功能有差别但差别较小的业务逻辑,可以在抽象类中声明为抽象方法,并在实现该该业务逻辑的实现类中通过override指令复写和实现所述抽象方法。
[0069] 可选地,如图3所示,在本实施例中,步骤S110可以包括步骤S111、步骤S112以及步骤S113三个子步骤。
[0070] 步骤S111,在所述抽象类中声明构造方法以及抽象的开关方法。
[0071] 步骤S112,在所述实现类中重写并实现所述开关方法,使所述开关方法的返回值与所述目标业务逻辑是否需要异步处理消息相对应。
[0072] 在所述抽象类中声明的开关方法是抽象方法,也即,在抽象类中,所述开关方法只有方法名,没有方法主体。所述开关方法延迟到所述抽象类的子类中实现。在本实施例中,若某一业务逻辑需要异步处理消息,在该业务逻辑为目标业务逻辑,可以使所述目标业务逻辑的实现类继承于所述抽象类,并在所述目标业务逻辑的实现类中重写并实现所述开关方法,使所述开关方法的返回值与所述目标业务逻辑是否需要异步处理消息相对应。
[0073] 例如,若所述目标业务逻辑需要异步处理消息,则将所述开关方法的返回值设置为true,若所述目标业务逻辑不需要异步处理消息,则将所述开关方法的返回值设置为false。
[0074] 可选地,在本实施例中,所述开关方法可以通过override指令重写。
[0075] 步骤S113,在所述构造方法中调用所述开关方法,并基于所述开关方法的返回值确定所述目标业务逻辑是否需要异步处理消息。
[0076] 构造方法是对象创建的固有方法,抽象类的实现类在被实例化的时候构造方法会被自动调用。在本实施例中,所述构造方法在抽象类中声明并实现。也就是说,抽象类中的构造方法具有方法主体。
[0077] 可选地,在本实施例中,可以在所述构造方法中调用所述开关方法,针对目标业务逻辑而言,所述开关方法已经在目标业务逻辑的实现类中被重写,因而,构造方法实际执行的是重写后的开关方法。
[0078] 实施时,电子设备100可根据开关方法的返回值确定目标业务逻辑是否需要异步处理消息。依照上述示例,若所述开关方法的返回值为true,则电子设备100确定目标业务逻辑需要异步处理消息,若所述开关方法的返回值为false,则电子设备100确定目标业务逻辑不需要异步处理消息。
[0079] 步骤S120,在所述目标业务逻辑需要异步处理消息时,判断所述抽象类中是否实例化有异步消息处理类,若未实例化,则实例化所述异步消息处理类。
[0080] 以异步消息处理类为Handler为例,实施时,若电子设备100基于开关方法的返回值确定目标业务逻辑需要异步处理消息,则进一步判断抽象类中是否已经有Handler对象,在抽象类中没有Handler对象的情况下,再实例化Handler得到一Handler对象。如此,可以保证抽象类中只有一个Handler对象,从而降低内存开销。
[0081] 步骤S130,在所述实现类中调用所述异步消息处理类的实例化对象,对所述目标业务逻辑的消息进行处理。
[0082] 实施时,在目标业务逻辑的实现类中获取抽象类中的Handler对象并通过该Handler对象对消息进行异步处理,而不必再重新实例化一个Handler对象。相当于在需要时可以直接将抽象类中的Handler对象拿过来使用。
[0083] 可选地,在执行步骤S120中判断所述抽象类中是否实例化有异步消息类的步骤之前,所述方法还可以包括如下步骤:
[0084] 在所述抽象类中声明对象获取方法,所述对象获取方法用户获取所述异步消息处理类的实例化对象并返回。
[0085] 以上述Handler对象为例,所述对象获取方法可以是getDefaultHandler()。如此,若抽象类中实例化有Handler对象,则方法getDefaultHandler()会返回一个Handler对象。相应地,当所述开关方法的返回值为false时,电子设备100不会对Handler进行实例化,方法getDefaultHandler()会返回一个空对象。
[0086] 可选地,在所述抽象类中声明有所述对象获取方法的基础上,步骤S120中的判断所述抽象类中是否实例化有异步消息处理类的步骤,可通过如下子步骤实现:
[0087] 获取所述对象获取方法的返回值,并在所述对象获取方法的返回值不为空时,确定所述抽象类中未实例化异步消息处理类。
[0088] 进一步地,所述步骤S130可以通过如下步骤实现:
[0089] 在所述实现类中调用所述对象获取方法,获取所述异步消息处理类的实例化对象。通过获取到的实例化对象对所述目标业务逻辑的消息进行处理。
[0090] 作为一种实施方式,可以在目标业务逻辑的实现类中调用抽象类中的对象获取方法,以获取抽象类中的Handler对象,以使目标业务逻辑所在层级可通过该Handler对象进行异步消息处理。
[0091] 如图4所示,本发明实施例还提供一种消息处理装置110,所述消息处理装置110应用于电子设备100中的应用程序,该应用程序可实现多个业务逻辑。所述消息处理装置110包括判断模块111、实例化模块112以及处理模块113。
[0092] 所述判断模块111用于基于设置在目标业务逻辑的实现类中的判断条件,在抽象类中判断所述目标业务逻辑是否需要异步处理消息。
[0093] 其中,所述实现类继承于所述抽象类。在本实施例中,关于所述判断模块111的描述具体可参考对图2所示步骤S110的详细描述,也即,所述步骤S110可以由所述判断模块111执行。
[0094] 可选地,所述判断模块111基于设置在目标业务逻辑的实现类中的判断条件,在抽象类中判断所述目标业务逻辑是否需要异步处理消息的方式可以包括:
[0095] 在所述抽象类中声明构造方法以及抽象的开关方法。在所述实现类中重写并实现所述开关方法,使所述开关方法的返回值与所述目标业务逻辑是否需要异步处理消息相对应。在所述构造方法中调用所述开关方法,并基于所述开关方法的返回值确定所述目标业务逻辑是否需要异步处理消息。
[0096] 所述实例化模块112用于在所述目标业务逻辑需要异步处理消息时,判断所述抽象类中是否实例化有异步消息处理类,若未实例化,则实例化所述异步消息处理类。
[0097] 其中,所述异步消息处理类可以是Handler。在本实施例中,关于所述实例化模块112的描述具体可参考对图2所示步骤S120的详细描述,也即,所述步骤S120可以由所述实例化模块112执行。
[0098] 所述处理模块113用于在所述实现类中调用所述异步消息处理类的实例化对象,对所述目标业务逻辑的消息进行处理。
[0099] 在本实施例中,关于所述处理模块113的描述具体可参考对图2所示步骤S130的详细描述,也即,所述步骤S130可以由所述处理模块113执行。
[0100] 可选地,如图5所示,所述消息处理装置110还可以包括对象获取模块114。
[0101] 所述对象获取模块114用于在判断所述抽象类中是否实例化有异步消息处理类之前,在所述抽象类中声明对象获取方法,所述对象获取方法用于获取所述异步消息处理类的实例化对象并返回。
[0102] 在本实施例中,关于所述对象获取模块114的描述具体可参考对上述内容中相关步骤的详细描述。
[0103] 进一步地,在所述消息处理装置110包括对象获取模块114的情况下,所述判断模块111可以包括第一获取子模块1111和确定子模块1112。
[0104] 其中,所述第一获取子模块1111用于获取所述对象获取方法的返回值。
[0105] 在本实施例中,关于所述第一获取子模块1111的描述具体可参考对上述内容中相关步骤的描述。
[0106] 所述确定子模块1112用于在所述对象获取方法的返回值不为空时,确定所述抽象类中未实例化异步消息处理类。
[0107] 在本实施例中,关于所述确定子模块1112的描述具体可参考对上述内容中相关步骤的描述。
[0108] 进一步地,在所述消息处理装置110包括对象获取模块114的情况下,所述处理模块113可以包括第二获取子模块1131和处理子模块1132。
[0109] 其中,所述第二获取子模块1131用于在所述实现类中调用所述对象获取方法,获取所述异步消息处理类的实例化对象。
[0110] 在本实施例中,关于所述第二获取子模块1131的描述具体可参考对上述内容中相关步骤的详细描述。
[0111] 处理子模块1132,用于通过获取到的实例化对象对所述目标业务逻辑的消息进行处理。
[0112] 在本实施例中,关于所述处理子模块1132的描述具体可参考对上述内容中相关步骤的详细描述。
[0113] 本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被执行时实现本发明实施例提供的消息处理方法。
[0114] 综上所述,本发明实施例提供的消息处理方法、装置及电子设备100,在抽象类中判断目标业务逻辑是否需要异步处理消息,在需要且抽象类中未实例化有异步消息处理类的情况下实例化异步消息处理类,并在该目标业务逻辑的实现类中调用异步消息处理类的实例化对象,以实现消息的异步处理。如此,可以仅在抽象类中实例化异步消息处理类,应用程序中的各业务逻辑在需要异步处理消息时调用该异步消息处理类的实例化对象即可实现消息的异步处理,大大降低了内存开销,提高了开发效率。
[0115] 在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0116] 另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
[0117] 所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0118] 需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0119] 以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。