一种消息处理方法、装置、电子设备及存储介质与流程

文档序号:16530839发布日期:2019-01-05 10:44阅读:194来源:国知局
一种消息处理方法、装置、电子设备及存储介质与流程

本发明实施例涉及软件开发技术领域,尤其涉及一种消息处理方法、装置电子设备及存储介质。



背景技术:

在软件开发设计中,通常采用mvc(model-view-controller,模型-视图-控制)框架对特定软件进行开发设计,其中,模型层负责消息的生成、收集等工作,视图层负责基于所述消息进行页面展示工作,控制层负责消息的传输工作,即负责将消息传输至视图层。

所述消息最终被传输至视图层中用于页面展示,最终通过视图层页面的改变被消费掉。传统方案中对所述消息的处理过程为:通过消息总线经过一系列的分发操作将所述消息传输至视图层,由视图层再对消息进行解析以及页面展示等处理操作。但是传统方案存在如下缺陷:消息总线占用大量的业务代码的开发工作,且消息需要经过多级流转才能被传输至视图层,极大地降低了代码的开发效率;同时,由于不同的视图类可能存在对相同的消息进行相同的逻辑操作,按照传统方案,则需要在不同的视图类中集成相同业务逻辑的代码,因此导致代码冗余,降低了代码的可维护性。



技术实现要素:

本发明实施例提供一种消息处理方法、装置、电子设备及存储介质,通过所述方法可减少消息的传递次数,降低消息传输的复杂性,极大地提高了开发效率。

第一方面,本发明实施例提供了一种消息处理方法,所述方法包括:

在视图层定义消息处理函数;

建立视图控制器与所述消息处理函数之间的引用关系,以通过所述视图控制器实现所述消息处理函数对应的函数功能;

当消息接收器接收到消息时,通过调用所述视图控制器触发所述消息处理函数,以处理所述消息。

进一步的,所述消息处理函数的类型为公有类型,以使所述消息处理函数被其他类进行调用。

进一步的,所述建立视图控制器与所述消息处理函数之间的引用关系,以通过所述视图控制器实现所述消息处理函数对应的函数功能,包括:

定义一个视图控制器类;

利用所述视图控制器类对应的构造函数对所述消息处理函数进行初始化操作;

在所述视图控制器类中定义一个与所述消息处理函数相同名称的函数,以通过所述视图控制器实现所述消息处理函数对应的函数功能。

进一步的,所述视图控制器类为公有类型,以使其他类通过实例化对象的方式实例化所述视图控制器类的对象。

进一步的,所述利用所述视图控制器类对应的构造函数对所述消息处理函数进行初始化操作,包括:

当利用所述视图控制器类对应的构造函数对所述视图控制器类进行初始化时,将已经初始化完成之后的视图类传递给所述视图控制器类的对象;

或者,在所述视图控制器类对应的构造函数内部对视图类进行初始化操作。

进一步的,所述当消息接收器接收到消息时,通过调用所述视图控制器触发所述消息处理函数,以处理所述消息之前,所述方法还包括:

在所述消息接收器对应的类的构造函数中通过调用视图控制器类对应的构造函数实例化一个视图控制器类对象,以使所述消息接收器具有所述视图控制器类的引用关系。

进一步的,所述当消息接收器接收到消息之后,通过调用所述视图控制器触发所述消息处理函数之前,所述方法还包括:

将所述消息转换为与所述消息处理函数的参数类型对应的数据对象。

第二方面,本发明实施例提供了一种消息处理装置,所述装置包括:

定义模块,用于在视图层定义消息处理函数;

建立模块,用于建立视图控制器与所述消息处理函数之间的引用关系,以通过所述视图控制器实现所述消息处理函数对应的函数功能;

处理模块,用于当消息接收器接收到消息时,通过调用所述视图控制器触发所述消息处理函数,以处理所述消息。

第三方面,本发明实施例提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述第一方面所述的消息处理方法。

第四方面,本发明实施例提供了一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时实现如上述第一方面所述的消息处理方法。

本发明实施例提供的一种消息处理方法,通过建立视图控制器与在视图层定义的消息处理函数之间的引用关系,使得通过所述视图控制器即可实现所述消息处理函数对应的函数功能;当消息接收器接收到消息时,则通过调用所述视图控制器触发所述消息处理函数,以处理所述消息,如此,所述消息则无需再经过多次传递最终传递到视图层进行处理,实现了减少消息的传递次数,降低消息传递复杂性,提高代码开发效率的目的。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对本发明实施例描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据本发明实施例的内容和这些附图获得其他的附图。

图1为本发明实施例一提供的一种消息处理方法流程示意图;

图2为本发明实施例二提供的一种消息处理方法流程示意图;

图3为本发明实施例三提供的一种消息处理装置结构示意图;

图4为本发明实施例四提供的一种电子设备的结构示意图。

具体实施方式

为使本发明解决的技术问题、采用的技术方案和达到的技术效果更加清楚,下面将结合附图对本发明实施例的技术方案作进一步的详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

实施例一

图1为本发明实施例一提供的一种消息处理方法流程示意图。本实施例公开的消息处理方法应用于android系统中,可以由消息处理装置来执行,其中该装置可由软件和/或硬件实现,并一般集成在android系统的终端中,例如android手机等。本实施例中所述的消息具体可以指用户的输入或者系统根据特定的业务逻辑自动触发的消息,本实施例以所述消息为“修改页面背景颜色的消息”为例进行解释说明。具体参见图1所示,该方法包括如下步骤:

110、在视图层定义消息处理函数。

首先,在视图层中定义一个处理“修改页面背景颜色”的消息处理函数,在视图层内部则通过该消息处理函数实现页面背景颜色的修改操作。具体的定义方法可参见如下所示:

publicvoidonreceivechangebgcolor(colorbeancolor)

其中,函数名称为“onreceivechangebgcolor”的消息处理函数的类型为公有类型,以使所述消息处理函数可以被其他类进行调用。所述消息处理函数的返回值是一个void类型的,也就是空返回函数,所述消息处理函数的参数信息是colorbean类型的数据color,其中,colorbean类型的数据color是最终传递给视图层的消息,视图层会利用所述消息处理函数“onreceivechangebgcolor”实现对页面背景颜色的更新和修改操作。视图层中所述消息处理函数“onreceivechangebgcolor”是一个public的普通函数,则该消息处理函数可以通过视图类对象进行调用,当该消息处理函数被调用的时候就会改变视图层的颜色信息,即修改页面的背景颜色。在消息处理函数“onreceivechangebgcolor”中进一步通过调用安卓系统的库函数color.getcolor()方法来获取需要改变的颜色色值信息bgcolor,然后通过视图类view中的view.setbackgroundcolor(bgcolor)方法来修改页面的背景颜色信息。

120、建立视图控制器与所述消息处理函数之间的引用关系,以通过所述视图控制器实现所述消息处理函数对应的函数功能。

其中,所述视图控制器是一个对视图状态进行控制的逻辑单元,主要用于对视图状态进行控制,例如控制更改视图页面颜色,更改视图中进度条的进度等。

示例性的,所述建立视图控制器与所述消息处理函数之间的引用关系,以通过所述视图控制器实现所述消息处理函数对应的函数功能,包括:

定义一个视图控制器类;

利用所述视图控制器类对应的构造函数对所述消息处理函数进行初始化操作;

在所述视图控制器类中定义一个与所述消息处理函数相同名称的函数,以通过所述视图控制器实现所述消息处理函数对应的函数功能。

具体的,所述利用所述视图控制器类对应的构造函数对所述消息处理函数进行初始化操作,包括:

当利用所述视图控制器类对应的构造函数对所述视图控制器类进行初始化时,将已经初始化完成之后的视图类传递给所述视图控制器类的对象;

或者,在所述视图控制器类对应的构造函数内部对视图类进行初始化操作。

具体的定义方法如下:

publicclassmyviewcontroller{}

所述视图控制器的类名称是myviewcontroller,类型为公有类型,设置为公有类型可以使其他类通过实例化对象的方式实例化所述视图控制器类的对象,以对视图控制器类中的对象进行调用。

设计视图控制器的目的是用于控制视图view的一些消息处理的方法,也就是说视图控制器是能够对视图view进行控制,这种控制在业务代码层面的体现是通过在视图控制器类myviewcontroller的内部持有视图view的应用关系来构建的。具体的持有视图的视图控制器的实现方法是在视图控制器myviewcontroller类的构造函数中实现对视图view类的初始化或者视图view类的持有操作。

通过两种构造方法设计视图控制器类对应的构造函数,分别是:直接在视图控制器myviewcontroller内部对视图view类进行初始化操作,或者在视图控制器myviewcontroller初始化的时候接收一个已经初始化好的视图view类的应用关系,这两种构造方法的设计和定义方法如下所示:

publicvoidmyviewcontroller()

publicvoidmyviewcontroller(viewview)

上述没有参数的构造函数publicvoidmyviewcontroller()是需要在视图控制器的内部对视图view类进行初始化操作,有参数的构造函数publicvoidmyviewcontroller(viewview)是将一个已经初始化操作完成的视图view类传递给视图控制器myviewcontroller对象。这两种构造方法最终的目标是使视图控制器myviewcontroller持有了一个视图view类的应用关系。

在视图控制器类myviewcontroller中定义一个与视图view层中所述消息处理函数相同名称的函数,具体的定义方法如下:

publicvoidonreceivechangebgcolor(colorbeancolor)

该函数是用于视图控制器处理消息的接收函数,该函数的名称、参数和视图层view中所述的消息处理函数相同,之所以设计成相同是为了方便直接推进视图层更新业务的处理,也就是说视图控制器myviewcontroller中的onreceivechangebgcolor函数的实现过程实质是通过调用视图层中的所述消息处理函数实现的,即view.onreceivechangebgcolor(colorbeancolor)的方法来控制视图背景颜色的修改操作。通过将视图控制器myviewcontroller中的onreceivechangebgcolor函数名称以及函数参数设置的与视图层view中的消息处理函数的函数名称以及函数参数一致,实现了函数参数的透传,在透传过程中由于参数一致,因此无需再对参数进行转换即可触发对应的消息处理函数,这样的设计能够简化数据对象的转换等过程,最直接地触发视图的变更。

130、当消息接收器接收到消息时,通过调用所述视图控制器触发所述消息处理函数,以处理所述消息。

当消息接收器接收到消息时,通过调用所述视图控制器触发所述消息处理函数,使得所述消息无需再经过多次传递到达视图层被处理,减少了消息的传递次数,无需再开发消息传递相关的代码,提高了代码开发效率,且当不同的视图需要实现所述消息处理函数的功能时,无需在每个视图中分别定义所述消息处理函数,直接利用视图控制器触发所述消息处理函数即可,减少了代码冗余,提高了代码的可维护性,有效保证了业务逻辑的一致性。

本实施例提供的一种消息处理方法,通过建立视图控制器与在视图层定义的消息处理函数之间的引用关系,使得通过所述视图控制器即可实现所述消息处理函数对应的函数功能;当消息接收器接收到消息时,则通过调用所述视图控制器触发所述消息处理函数,以处理所述消息,如此,所述消息则无需再经过多次传递最终传递到视图层进行处理,实现了减少消息的传递次数,降低消息传递复杂性,提高代码开发效率的目的。

实施例二

图2为本发明实施例二提供的一种消息处理方法流程示意图。在上述实施例的基础上,本实施例给出了上述步骤130“当消息接收器接收到消息时,通过调用所述视图控制器触发所述消息处理函数,以处理所述消息”的实现过程。具体参见图2所示,该方法包括如下步骤:

210、在视图层定义消息处理函数。

220、建立视图控制器与所述消息处理函数之间的引用关系,以通过所述视图控制器实现所述消息处理函数对应的函数功能。

230、在所述消息接收器对应的类的构造函数中通过调用视图控制器类对应的构造函数实例化一个视图控制器类对象,以使所述消息接收器具有所述视图控制器类的引用关系。

其中,所述消息接收器是一个用于接收消息的逻辑模块,在接收消息的类即所述消息接收器对应的类的构造函数中通过调用视图控制器myviewcontroller对应的构造函数来实例化一个视图控制器类对象,这样在消息接收的地方就持有了视图控制器类myviewcontroller对象的引用关系,即消息接收器具有调用视图控制器类对象的权限。

240、当消息接收器接收到消息时,将所述消息转换为与所述消息处理函数的参数类型对应的数据对象。

例如,当消息接收器接收到改变页面背景颜色的消息后,首先将所述消息转换成视图显示所需要的bean对象,即所述消息处理函数onreceivechangebgcolor(colorbeancolor)所需要的参数类型colorbean的数据对象。

250、通过调用所述视图控制器触发所述消息处理函数,以处理所述消息。

将所述消息转换成视图显示所需要的bean对象后,直接通过调用视图控制器类对象中的myviewcontroller.onreceivechangebgcolor(colorbean)方法来触发视图控制器中的修改改页面背景颜色的方法,此时视图控制器就会自动触发视图层view的修改页面背景颜色的函数onreceivechangebgcolor,视图层view就实现了颜色的修改流程。通过这种多级对象持有的方式达到了消息与视图层之间的桥接关系的目的。

本实施例提供的一种消息处理方法,通过在视图控制器中持有视图层的消息处理函数对象,在消息接收器中持有视图控制器对象,实现了当消息接收器接收到消息时,直接通过调用视图控制器触发视图层的消息处理函数对消息进行处理的目的,减少了消息传递的次数,降低了消息传递复杂性,提高了代码开发效率。

实施例三

图3为本发明实施例三提供的一种消息处理装置结构示意图。参见图3所示,所述装置包括:定义模块310、建立模块320和处理模块330;

其中,定义模块310,用于在视图层定义消息处理函数;

建立模块320,用于建立视图控制器与所述消息处理函数之间的引用关系,以通过所述视图控制器实现所述消息处理函数对应的函数功能;

处理模块330,用于当消息接收器接收到消息时,通过调用所述视图控制器触发所述消息处理函数,以处理所述消息。

进一步的,所述消息处理函数的类型为公有类型,以使所述消息处理函数被其他类进行调用。

进一步的,建立模块320包括:

第一定义单元,用于定义一个视图控制器类;

初始化单元,用于利用所述视图控制器类对应的构造函数对所述消息处理函数进行初始化操作;

第二定义单元,用于在所述视图控制器类中定义一个与所述消息处理函数相同名称的函数,以通过所述视图控制器实现所述消息处理函数对应的函数功能。

进一步的,所述视图控制器类为公有类型,以使其他类通过实例化对象的方式实例化所述视图控制器类的对象。

所述初始化单元具体用于:当利用所述视图控制器类对应的构造函数对所述视图控制器类进行初始化时,将已经初始化完成之后的视图类传递给所述视图控制器类的对象;或者,在所述视图控制器类对应的构造函数内部对视图类进行初始化操作。

进一步的,所述装置还包括实例化模块,用于在所述当消息接收器接收到消息时,通过调用所述视图控制器触发所述消息处理函数,以处理所述消息之前,在所述消息接收器对应的类的构造函数中通过调用视图控制器类对应的构造函数实例化一个视图控制器类对象,以使所述消息接收器具有所述视图控制器类的引用关系。

进一步的,所述装置还包括转换模块,用于在所述当消息接收器接收到消息之后,通过调用所述视图控制器触发所述消息处理函数之前,将所述消息转换为与所述消息处理函数的参数类型对应的数据对象。

本实施例提供的消息处理装置,通过建立视图控制器与在视图层定义的消息处理函数之间的引用关系,使得通过所述视图控制器即可实现所述消息处理函数对应的函数功能;当消息接收器接收到消息时,则通过调用所述视图控制器触发所述消息处理函数,以处理所述消息,如此,所述消息则无需再经过多次传递最终传递到视图层进行处理,实现了减少消息的传递次数,降低消息传递复杂性,提高代码开发效率的目的。

实施例四

图4为本发明实施例四提供的一种电子设备的结构示意图。如图4所示,该电子设备包括:处理器670、存储器671及存储在存储器671上并可在处理器670上运行的计算机程序;其中,处理器670的数量可以是一个或多个,图4中以一个处理器670为例;处理器670执行所述计算机程序时实现如上述实施例一中所述的消息处理方法。如图4所示,所述电子设备还可以包括输入装置672和输出装置673。处理器670、存储器671、输入装置672和输出装置673可以通过总线或其他方式连接,图4中以通过总线连接为例。

存储器671作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中消息处理装置/模块(例如,消息处理装置中的定义模块310和建立模块320等)。处理器670通过运行存储在存储器671中的软件程序、指令以及模块,从而执行电子设备的各种功能应用以及消息处理,即实现上述的消息处理方法。

存储器671可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器671可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器671可进一步包括相对于处理器670远程设置的存储器,这些远程存储器可以通过网络连接至电子设备/存储介质。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

输入装置672可用于接收输入的数字或字符信息,以及产生与电子设备的用户设置以及功能控制有关的键信号输入。输出装置673可包括显示屏等显示设备。

实施例五

本发明实施例五还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种消息处理方法,该方法包括:

在视图层定义消息处理函数;

建立视图控制器与所述消息处理函数之间的引用关系,以通过所述视图控制器实现所述消息处理函数对应的函数功能;

当消息接收器接收到消息时,通过调用所述视图控制器触发所述消息处理函数,以处理所述消息。

当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的消息处理相关操作。

通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、闪存(flash)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,存储介质,或者网络设备等)执行本发明各个实施例所述的。

注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1