掌桥专利:专业的专利平台
掌桥专利
首页

业务处理系统及方法

文献发布时间:2023-06-19 11:08:20


业务处理系统及方法

技术领域

本申请实施例涉及软件架构技术领域,特别涉及一种业务处理系统及方法。

背景技术

目前,在业务处理系统开发过程中,常见的业务处理系统包括MVC(Model-View-Controller,模型-视图-控制器)模式、MVP(Model-View-Presenter,模型-视图-主持者)模式和MVVM(Model-View-ViewModel,模型-视图-视图模型)模式等。

以MVP模式为例,在MVP模式中,主持者层负责业务逻辑的处理,模型层负责提供数据,视图层负责显示用户界面,即所有的业务逻辑都部署在主持者层。

随着业务版本的迭代,业务处理系统所需实现的业务功能逐渐增多,导致业务逻辑控制层(如主持者层)中的业务逻辑逐渐增多,进而造成业务逻辑臃肿堆积,业务处理系统的可维护性和可拓展性差。

发明内容

本申请实施例提供了一种业务处理系统及方法,能够通过提供用于执行业务逻辑的业务状态类,并将业务状态类内聚成多个业务流,再将多个业务流内聚成上下文环境类,降低业务逻辑之间的耦合性和提高业务逻辑之间的内聚性,增加业务处理系统的可维护性和可拓展性。所述技术方案如下:

根据本申请实施例的一个方面,提供了一种业务处理系统,所述系统包括模型层、视图层和业务逻辑控制层,所述业务逻辑控制层包括用于对外交互的上下文环境类,所述上下文环境类包括所述业务处理系统的多个业务流,单个所述业务流包括多个业务状态类;

所述模型层,用于存储所述业务处理系统的业务数据;

所述视图层,用于基于所述业务数据,显示所述业务处理系统的用户界面;

所述上下文环境类,用于获取来自所述视图层和/或所述模型层的业务处理事件,将所述业务处理事件分发给所述业务流进行处理;

所述业务流,用于基于接收到的所述业务处理事件,对所述业务状态类进行切换;

所述业务状态类,用于执行所述业务处理事件对应的业务逻辑,并对所述用户界面和/或所述业务数据进行更新。

根据本申请实施例的一个方面,提供了一种业务处理方法,所述方法应用于业务处理系统中,所述系统包括模型层、视图层和业务逻辑控制层,所述业务逻辑控制层包括用于对外交互的上下文环境类,所述上下文环境类包括所述业务处理系统的多个业务流,单个所述业务流包括多个业务状态类;

所述方法包括:

所述模型层存储所述业务处理系统的业务数据;

所述视图层基于所述业务数据,显示所述业务处理系统的用户界面;

所述上下文环境类获取来自所述视图层和/或所述模型层的业务处理事件,将所述业务处理事件分发给所述业务流进行处理;

所述业务流基于接收到的所述业务处理事件,对所述业务状态类进行切换;

所述业务状态类执行所述业务处理事件对应的业务逻辑,并对所述用户界面和/或所述业务数据进行更新。

根据本申请实施例的一个方面,提供了一种业务处理装置,应用于业务处理系统中,所述系统包括模型层、视图层和业务逻辑控制层,所述业务逻辑控制层包括用于对外交互的上下文环境类,所述上下文环境类包括所述业务处理系统的多个业务流,单个所述业务流包括多个业务状态类;

所述装置包括:

业务数据存储模块,用于通过所述模型层存储所述业务处理系统的业务数据;

用户界面显示模块,用于通过所述视图层基于所述业务数据,显示所述业务处理系统的用户界面;

处理事件分发模块,用于通过所述上下文环境类获取来自所述视图层和/或所述模型层的业务处理事件,将所述业务处理事件分发给所述业务流进行处理;

业务状态类切换模块,用于通过所述业务流基于接收到的所述业务处理事件,对所述业务状态类进行切换;

业务逻辑执行模块,用于通过所述业务状态类执行所述业务处理事件对应的业务逻辑,并对所述用户界面和/或所述业务数据进行更新。

根据本申请实施例的一个方面,提供了一种终端,所述终端包括处理器和存储器,所述存储器中存储有计算机程序,所述计算机程序由所述处理器加载并执行以实现上述业务处理方法。

根据本申请实施例的一个方面,提供了一种计算机可读存储介质,所述可读存储介质中存储有计算机程序,所述计算机程序由处理器加载并执行以实现上述业务处理方法。

根据本申请实施例的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。终端的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该终端执行上述业务处理方法。

本申请实施例提供的技术方案可以带来如下有益效果:

通过提供用于执行业务逻辑的业务状态类,并将多个业务状态类内聚成业务流,再将多个业务流内聚成上下文环境类,实现业务逻辑之间高内聚,如此通过业务状态类即可知道业务流的整体流程,通过上下文环境类即可知道对应的业务流所具有的业务功能,便于阅读和理解,提高了业务处理系统的可维护性。

另外,各个业务状态类用于执行各个业务状态类分别对应的业务逻辑,各个业务流用于切换各个业务流对应的业务状态类,实现业务状态类之间低耦合,业务流之间低耦合,如此可低成本地装卸组合各个状态流,或各个业务状态类,进而使业务处理系统具有良好的可拓展性。

附图说明

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

图1是本申请一个实施例提供的业务处理系统的架构图;

图2是本申请一个实施例提供的业务状态类主动切换的流程图;

图3是本申请一个实施例提供的业务处理系统的内部交互关系的示意图;

图4是本申请一个实施例提供的业务处理系统的交互起点的示意图;

图5是本申请一个实施例提供的业务逻辑控制层对应的代码架构中的接口关系的示意图;

图6是本申请一个实施例提供的业务处理方法的流程图;

图7是本申请一个实施例提供的业务处理装置的框图。

具体实施方式

为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。

请参考图1,其示出了本申请一个实施例提供的业务处理系统的架构图。该业务处理系统可以包括:模型层101、视图层102和业务逻辑控制层103,业务逻辑控制层103包括用于对外交互的上下文环境类,上下文环境类包括业务处理系统的多个业务流,单个业务流包括多个业务状态类。

模型层101用于存储业务处理系统的业务数据。其中,业务数据是指业务处理系统执行业务逻辑所需的数据,其可以包括业务逻辑对应的代码数据、业务处理系统显示所需的数据等。例如,业务处理系统显示所需的数据可以是用户界面、页面等显示所需的图片、文字、符号等数据。可选地,业务处理系统是指按照一系类业务逻辑对业务事件进行处理的系统。例如,诸如视频类、直播类、音乐类等应用程序的任务系统可以基于该业务处理系统来实现。业务事件可以是诸如显示用户界面、用户交互操作、系统的数据变更等。业务处理系统执行业务逻辑对业务事件进行处理,生成业务逻辑执行结果,该结果可以包括用户界面的变更显示数据、页面的更新调整数据等。可选地,模型层101还可用于业务数据的加载。例如,模型层101从网络或本地数据库中获取业务数据。

视图层102用于基于业务数据,显示业务处理系统的用户界面。视图层102通过用户界面将业务数据进行可视化显示。例如,视图层102基于业务数据构建用户界面的内容,用户界面将所构建的内容显示给用户。视图层102还可以基于上述业务逻辑执行结果更新显示用户界面。可选地,视图层102还可通过用户界面给用户提供交互方式。响应于用户针对用户界面诸如点击、按压、滑动等交互操作,视图层102通过用户界面显示交互操作对应的显示内容。例如,响应于用户针对用户界面中视频的播放交互操作,视图层102通过用户界面显示对应的视频。

可选地,当视图层102需要展示某些业务数据时,可以通过业务逻辑控制层103从模型层101中获取所需的业务数据。

其中,业务逻辑控制层103用于处理业务处理系统的业务逻辑。业务逻辑是指数据处理的规则和流程,诸如数据运算逻辑、数据获取逻辑、数据显示逻辑等。例如,业务逻辑控制层103执行业务数据获取逻辑,调用模型层101获取对应的业务数据。

可选地,业务逻辑控制层103中的上下文环境类是业务逻辑控制层103的交互总入口。上下文环境类可用于获取来自视图层102和/或模型层101的业务处理事件,并将业务处理事件分发给业务流进行处理。例如,上下文环境类可用于获取来自视图层102的用户交互操作(如手势点击等),上下文环境类可用于获取来自模型层101的数据变化通知等,本申请实施例对此不作限定。

视图层102或模型层101可以通过上下文环境类获取业务逻辑控制层103中的业务流部署以及业务流对应的业务状态类。例如,参考图1,视图层102可以通过上下文环境类获取该逻辑控制层103中包括至少2个业务流,每个业务流至少包括3个业务状态类。

上下文环境类是业务流的集合类。一个上下文环境类可以包括多个业务流,每个业务流都具有唯一性,任意两个业务流之间互相独立。例如,一个上下文环境类包括业务流A和业务流B,业务流A是否被调用,并不会对业务流B造成影响。

可选地,不同的上下文环境类对应不同类型的业务流集合。例如,以视频类应用程序对应的业务处理系统为例,该业务处理系统的第一个上下文环境类可以包括针对已有视频的点赞、转发、评论等业务流。该业务处理系统的第二个上下文环境类可以包括针对视频的录制、调整、上传等业务流。

其中,业务流即是指业务链,其具有完整的业务功能。一个业务流可以包括多个业务状态类,每个业务状态类都具有唯一性。例如,参考图1,业务流A可以包括业务状态类1、业务状态类2、业务状态类3等多个业务状态类。业务流可用于基于接收到的业务处理事件,对业务状态类进行切换。例如,以上述的评论业务流为例,评论业务流中可以包括选择业务状态类、编辑业务状态类和发布业务状态类。该业务流的当前业务状态类为选择业务状态类,若业务流接收到处理用户输入的业务处理事件,则业务流将选择业务状态类切换为编辑业务状态类。

可选地,业务流还包括可观察数据存储类。可观察数据存储类用于驱动业务流中的业务状态类切换,其具体内容可以如下:业务流用于执行业务流的状态类切换方法,更新可观察数据存储类中的数据;可观察数据存储类用于响应于可观察数据存储类中的数据更新事件,生成更新回调信息,更新回调信息用于获取第一业务状态类;业务流用于基于更新回调信息,将业务流的当前业务状态类切换至第一业务状态类。其中,第一业务状态类可以是该业务流中的任一业务状态类。可观察数据存储类可以由用户自定义。例如,在应用程序组件Activity(活动)中可以使用可观察数据存储类LiveData(实时数据)。

在一个示例中,业务状态类还可以通过业务流主动进行业务状态类切换,其具体内容如下:业务状态类用于执行业务状态类中的切换逻辑,将第二业务状态类的标识信息发送给业务流,并通过调用业务流的状态类切换方法,更新可观察数据存储类中的数据;可观察数据存储类用于响应于可观察数据存储类中的数据更新事件,生成所述更新回调信息,更新回调信息中包括第二业务状态类的标识信息;业务流用于基于更新回调信息,将业务流的当前业务状态类切换至第二业务状态类。其中,第二业务状态类可以是该业务流中的任一业务状态类。

例如,参考图2,在流程201中,业务状态类A执行业务状态类A的切换逻辑,获取业务状态类B的标识信息,并将业务状态类B的标识信息发送给业务流,同时,业务状态类A执行业务状态类A释放方法,释放所持有的业务数据。然后业务状态类A通过调用业务流中的状态类切换方法,更新业务流的可观察数据存储类中的数据。可观察数据存储类生成更新回调信息,业务流基于更新回调信息,获取对应的业务状态类B,并执行业务状态类B的命中方法,使业务状态类B开始执行对应的业务逻辑。

可选地,一个业务流对应于一个上下文环境类。例如,业务流A不能同时存在于上下文环境类1中和上下文环境2中,业务流A要么只存在于上下文环境类1中,要么只存在于上下文环境2中,且业务流A只接收对应上下文环境类的业务处理事件。

其中,业务状态类是交互的出口,其可用于执行业务处理事件对应的业务逻辑,并对用户界面和/或业务数据进行更新。例如,以上述的选择业务状态类为例,若业务流的当前业务状态类为选择业务状态类,则选择业务状态类执行处理用户选择交互操作对应的业务逻辑,对用户选择交互操作进行处理,控制用户界面显示用户选择交互操作对应的界面效果。可选地,业务状态类还可以包括用户界面逻辑、数据更新逻辑等。用户界面逻辑用于处理用户界面对应的业务数据,数据更新逻辑用于处理模型层中的业务数据。

可选地,一个业务状态类对应于一个业务流。例如,业务状态类A不能同时存在于业务流1中和业务流2中,业务状态类A要么存在于业务流1中,要么存在于业务流2中,且业务状态类A只响应于对应业务流的切换处理。

可选地,业务状态类与业务状态之间通过业务流共享业务数据。例如,以评论业务流为例。选择业务状态类、编辑业务状态类和发布业务状态类之间通过评论业务流共享部分评论数据。

综上所述,本申请实施例提供的技术方案,通过提供用于执行业务逻辑的业务状态类,并将多个业务状态类内聚成业务流,再将多个业务流内聚成上下文环境类,实现业务逻辑之间高内聚,如此通过业务状态类即可知道业务流的整体流程,通过上下文环境类即可知道对应的业务流所具有的业务功能,便于阅读和理解,提高了业务处理系统的可维护性。

另外,各个业务状态类用于执行各个业务状态类分别对应的业务逻辑,各个业务流用于切换各个业务流对应的业务状态类,实现业务状态类之间低耦合,业务流之间低耦合,如此可低成本地装卸组合各个状态流,或各个业务状态类,进而使业务处理系统具有良好的可拓展性。

另外,通过业务流中可观察数据类驱动业务状态类进行切换,实现了业务状态类的自动切换,而无需手动切换,进而提高了业务处理系统处理业务事件的效率。

在一个示例性实施例中,参考图3,模型层、视图层和业务逻辑控制层之间的交互关系可以如下:

模型层301与业务逻辑控制层303之间为双向交互关系,业务逻辑控制层303可以从模型层301中获取业务数据。模型层301可以向业务逻辑控制层303发送业务处理事件。

视图层302与业务逻辑控制层303之间为双向交互关系。视图层302可以向业务逻辑控制层303发送业务处理事件,业务逻辑控制层303可以控制视图层302更新显示业务处理系统的用户界面。

需要说明的是,模型层301与视图层302不直接交互。视图层302通过业务逻辑控制303从模型层301中获取业务数据。

可选地,视图层、模型层、上下文环境类、业务流和业务状态类之间的交互关系,可以如下:

视图层302和上下文环境类304之间为单向交互关系。上下文环境类304中设置有用于视图层302交互的交互接口,视图层302通过对应的交互接口,获取上下文环境类304中各个业务流的当前业务状态类,以及将业务处理事件发送给上下文环境类304,通知上下文环境类304切换业务状态类。上下文环境类304无法主动对视图层302进行操作。

上下文环境类304和业务流305之间为单向交互关系。上下文环境类304可以主动操作业务流305。例如,上下文环境类304可以获取或更新业务流305的当前业务状态类。业务流305无法主动对上下文环境类304进行操作。

业务流305和业务状态类306之间为双向交互关系。业务流305可以主动切换业务状态流306,业务状态流306也可以通过业务流305进行主动切换。

可选地,业务流305还和模型层301之间为单向交互关系。业务流305在构建新的业务流或调整业务流时,需要模型层301中对应的业务数据。业务流305可以主动更新模型层中的业务数据,还可以操作模型层301中的方法,诸如资源加载、查找、修改、删除等方法。模型层301无法主动对业务流305进行操作。

业务状态类306和模型层301之间为单向交互关系。业务状态类305可以主动更新模型层中的业务数据,还可以操作模型层301中的方法,诸如资源加载、查找、修改、删除等方法。模型层301无法主动对业务状态类306进行操作。

可选地,业务状态类306还和视图层302之间为单向交互关系。业务状态类306执行对应的用户界面逻辑,通过视图层302对更新显示用户界面作。视图层302无法主动对业务状态类306进行操作。

模型层301和上下文换环境类304之间为单向交互关系。模型层301可以主动将业务处理事件发送给上下文换环境类304。例如,模型层301中的数据(如显示用户界面显示所需的业务数据)发生变化时,模型层301会将对应的数据变更事件发送给上下文环境类304,通知上下文环境类304调用对应的业务流中的目标业务状态类。

在一个示例性实施例中,参考图4,业务处理系统的交互起点可以包括至少以下三个点:

1、交互起点401,其对应于应视图层的界面操作事件,其具体交互过程如下:

上下文环境类用于获取来自视图层的界面操作事件;从多个业务流中,确定与界面操作事件相关联的第一业务流;将界面操作事件分发给第一业务流进行处理。其中,界面操作事件是指用户针对用户界面的交互操作。例如,用户针对资源下载控件的触发操作、用户针对视频播放控件的触发操作等,本申请实施例对此不作限定。

例如,以用户针对资源下载控件的触发操作为例。视图层通过上下文环境类中对应的接口,将该界面操作事件通知到上下文环境类。上下文环境类将该界面操作事件分发给对应的业务流。该业务流切换到对应的业务状态类,执行对应的业务资源获取逻辑,调用模型层去加载对应的资源,模型层在资源加载完成之后,会通知到上下文环境类该资源已加载完成,上下文环境类再通过该业务状态类从模型层中调用该数据,然后上下文环境类控制该业务流切换到用于执行用户界面逻辑的业务状态类,最后通过视图层将该数据展示给用户。

2、交互起点402,其对应于应模型层的数据更新事件,其具体交互过程如下:

上下文环境类用于获取来自模型层的数据更新事件;从多个业务流中,确定与数据更新事件相关联的第二业务流;将数据更新事件分发给第二业务流进行处理。其中,数据更新事件可以是指业务逻辑对应的代码数据、业务处理系统显示所需数据等数据的更新事件。

例如,以业务处理系统显示所需数据为例。模型层通过上下文环境类中对应的接口,将该数据更新事件通知到上下文环境类。上下文环境类将该界面操作事件分发给对应的业务流。该业务流切换到对应的业务状态类,执行对应的用户界面逻辑,通过视图层更新用户界面。

3、交互起点403,其对应于系统(或应用)触发的全局事件,其具体交互过程如下:

业务流用于获取系统触发的全局事件,全局事件是预先在业务流中注册的,并基于全局事件对业务状态类进行切换;业务状态类用于执行全局事件对应的业务逻辑,并对用户界面和/或业务数据进行更新。其中,全局事件用于提示业务流系统(或应用)发生变化。不同的业务流中注册着不同的全局事件。例如,用于定位的业务流中可以注册着GPS(Global Positioning System,全球定位系统)、网络等全局事件。用于资源下载的业务流中可以注册着网络、前后台切换等事件。可选地,全局事件的注册和反注册都是在业务流中,当全局事件的触发时,业务流会直接接收到对应的全局事件。

例如,以网络全局事件(如网络中断等)为例。上下文环境类在接收到该网络全局事件之后,将该网络全局事件分发给对应的业务流。该业务流切换到对应的业务状态类,执行对应的用户界面逻辑,通过视图层将该网络全局事件显示给用户。

在一个示例性实施例中,请参考图5,业务逻辑控制层对应的代码架构中的接口关系可以如下:

在业务逻辑控制层对应的代码中,上下文环境类接口501由IContext接口表示,业务流接口502由IFlow接口表示,业务状态类接口504由IState接口表示,模型层接口503由IData接口表示。IContext接口中包括多个IFlow接口,IFlow接口中又包括多个IState接口。同时,IFlow接口和IState接口依赖于IData接口。

IFlow接口的方法和属性可以如下:

1、Map属性,其用于定义当前业务流所包含的业务状态类集合,每个具体业务流可以包含不同的业务状态类集合。该属性需要在具体业务流中实现。

2、IData属性,其用于表示具体的模型对象。业务逻辑控制层需要根据IData来构建完整的业务流,其可在AbsFlow(基类业务流)中实现。

3、IState属性,其用于表示业务流当前的业务状态类。在切换业务状态类时需更新此属性。

4、UniqueKey属性,其用于标志业务流的唯一性,可在具体业务流中实现此属性。

5、Destroy方法,其用于控制当前业务流释放所持有的资源,并销毁当前业务流。其可在AbsFlow中实现,也可根据实际情况在具体业务流中特定实现。

6、SetState方法,其用于切换业务状态类,可在AbsFlow中实现。

7、ObservableData属性,其用于定义可观察数据存储类,可用于驱动业务状态类切换。可选地,可以使用LiveData作为可观察数据类,也可以用户自定义可观察数据存储类。该属性可在AbsFlow中实现。

IState接口的方法和属性可以如下:

1、UniqueKey属性,其用于标志业务状态类的唯一性,可在具体业务状态类中实现。

2、IFlow属性,其用于表示当前业务状态类所从属于的业务流,在AbsState(基类业务状态类)中实现即可。

3、Hit方法,其用于命中目标业务状态类,并执行目标业务状态类对应的业务逻辑,每个业务状态类对应不同的业务逻辑。该方法可在具体业务状态类中实现。

4、Next方法,其用于表示从当前业务状态类到下个业务状态类的切换逻辑,每个业务状态类对应不同的切换逻辑。该方法可在具体业务状态类中实现。

5、Destroy方法,其用于控制当前业务状态类释放所持有的资源,可在AbsState中实现,也可以根据实际情况在具体业务状态类中特定实现。

业务逻辑控制层对应的代码架构中,最核心的部分就是构建通用的AbsFlow和AbsState。在构建好这两个基类之后,若需要构建新增的简单的业务流时,只需要简单地填充对应的业务流和业务状态类对应的代码即可。可选地,该代码的实现可以是基于编程语言Kotlin(科特林)。

从IFlow和IState的接口方法和属性可得知,当AbsFlow和AbsState比较完善时,新增一个简单的业务链只需要简单的填充IFlow中的Map属性,和IState中的Hit方法和Next方法即可。

例如,模型层中还包括基类业务流和基类业务状态类,基类业务流是指可通用的业务流,基类业务状态类是指可通用的业务状态类,业务处理系统构建新的业务流的具体内容可以如下:上下文环境类用于从模型层中获取基类业务流和基类业务状态类,并确定基类业务流所包括的基类业务状态类集合,以及确定基类业务状态类集合中各个基类业务状态类分别对应的业务逻辑和切换逻辑,生成新的业务流。

综上所述,本申请实施例提供的技术方案,通过提供用于执行业务逻辑的业务状态类,并将多个业务状态类内聚成业务流,再将多个业务流内聚成上下文环境类,实现业务逻辑之间高内聚,如此通过业务状态类即可知道业务流的整体流程,通过上下文环境类即可知道对应的业务流所具有的业务功能,便于阅读和理解,提高了业务处理系统的可维护性。

另外,各个业务状态类用于执行各个业务状态类分别对应的业务逻辑,各个业务流用于切换各个业务流对应的业务状态类,实现业务状态类之间低耦合,业务流之间低耦合,如此可低成本地装卸组合各个状态流,或各个业务状态类,进而使业务处理系统具有良好的可拓展性。

另外,通过设置基类业务流和基类业务状态类,可便捷地新增业务流。

以下为本申请方法实施例,对于本申请方法实施例中未详细说明的细节,可参见本申请系统实施例。

请参考图6,其示出了本申请一个实施例提供的业务处理方法的流程图。该方法可应用于上文实施例介绍的业务处理系统中。该方法可以包括如下几个步骤(601~605):

步骤601,模型层存储业务处理系统的业务数据。

步骤602,视图层基于业务数据,显示业务处理系统的用户界面。

步骤603,上下文环境类获取来自视图层和/或模型层的业务处理事件,将业务处理事件分发给业务流进行处理。

在一个示例中,上下文环境类对来自视图层的业务处理事件的具体处理内容可以如下:上下文环境类获取来自视图层的界面操作事件;上下文环境类从多个业务流中,确定与界面操作事件相关联的第一业务流;上下文环境类将界面操作事件分发给第一业务流进行处理。

在一个示例中,上下文环境类对来自模型层的业务处理事件的具体处理内容可以如下:上下文环境类获取来自模型层的数据更新事件;上下文环境类从多个业务流中,确定与数据更新事件相关联的第二业务流;上下文环境类将数据更新事件分发给第二业务流进行处理。

步骤604,业务流基于接收到的业务处理事件,对业务状态类进行切换。

可选地,业务流还可以包括可观察数据存储类,业务流可以通过可观察数据存储类对业务状态进行切换处理,其具体内容可以如下:业务流执行业务流的状态类切换方法,更新可观察数据存储类中的数据;可观察数据存储类响应于可观察数据存储类中的数据更新事件,生成更新回调信息,更新回调信息用于获取第一业务状态类;业务流基于更新回调信息,将业务流的当前业务状态类切换至第一业务状态类。

可选地,业务流还可以基于系统触发的全局事件,对业务状态类进行切换,其具体内容可以如下:业务流获取系统触发的全局事件,全局事件是预先在业务流中注册的,并基于全局事件对业务状态类进行切换。业务状态类执行全局事件对应的业务逻辑,并对用户界面和/或业务数据进行更新。

在一个示例中,业务状态类还可以通过业务流主动进行业务状态类切换,其具体内容可以如下:业务状态类执行业务状态类中的切换逻辑,将第二业务状态类的标识信息发送给业务流,并通过调用业务流的状态类切换方法,更新可观察数据存储类中的数据;可观察数据存储类响应于可观察数据存储类中的数据更新事件,生成更新回调信息,更新回调信息中包括第二业务状态类的标识信息;业务流基于更新回调信息,将业务流的当前业务状态类切换至第二业务状态类。

在一个示例中,模型层中还包括基类业务流和基类业务状态类,基类业务流是指可通用的业务流,基类业务状态类是指可通用的业务状态类。上下文环境类可以通过基类业务流和基类业务状态类构建新的业务流,其具体内容可以如下:上下文环境类从模型层中获取基类业务流和基类业务状态类,并确定基类业务流所包括的基类业务状态类集合,以及确定基类业务状态类集合中各个基类业务状态类分别对应的业务逻辑和切换逻辑,生成新的业务流。

可选地,任意两个业务流之间互相独立。

步骤605,业务状态类执行业务处理事件对应的业务逻辑,并对用户界面和/或业务数据进行更新。

可选地,一个业务流对应于一个上下文环境类;一个业务状态类对应于一个业务流。

综上所述,本申请实施例提供的技术方案,通过提供用于执行业务逻辑的业务状态类,并将多个业务状态类内聚成业务流,再将多个业务流内聚成上下文环境类,实现业务逻辑之间高内聚,如此通过业务状态类即可知道业务流的整体流程,通过上下文环境类即可知道对应的业务流所具有的业务功能,便于阅读和理解,提高了业务处理系统的可维护性。

另外,各个业务状态类用于执行各个业务状态类分别对应的业务逻辑,各个业务流用于切换各个业务流对应的业务状态类,实现业务状态类之间低耦合,业务流之间低耦合,如此可低成本地装卸组合各个状态流,或各个业务状态类,进而使业务处理系统具有良好的可拓展性。

下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请系统实施例。

请参考图7,其示出了本申请一个实施例提供的业务处理装置的框图。该装置具有实现上述业务处理方法示例的功能,所述功能可以由硬件实现,也可以由硬件执行相应的软件实现。该装置可以是上文介绍的终端,也可以设置在终端中。该装置700可以包括:业务数据存储模块701、用户界面显示模块702、处理事件分发模块703、业务状态类切换模块704和业务逻辑执行模块705。

业务数据存储模块701,用于通过所述模型层存储所述业务处理系统的业务数据。

用户界面显示模块702,用于通过所述视图层基于所述业务数据,显示所述业务处理系统的用户界面。

处理事件分发模块703,用于通过所述上下文环境类获取来自所述视图层和/或所述模型层的业务处理事件,将所述业务处理事件分发给所述业务流进行处理。

业务状态类切换模块704,用于通过所述业务流基于接收到的所述业务处理事件,对所述业务状态类进行切换。

业务逻辑执行模块705,用于通过所述业务状态类执行所述业务处理事件对应的业务逻辑,并对所述用户界面和/或所述业务数据进行更新。

在一个示例性实施例中,任意两个所述业务流之间互相独立。

在一个示例性实施例中,所述处理事件分发模块703,用于:

通过所述上下文环境类获取来自所述视图层的界面操作事件;

通过所述上下文环境类从所述多个业务流中,确定与所述界面操作事件相关联的第一业务流;

通过所述上下文环境类将所述界面操作事件分发给所述第一业务流进行处理。

在一个示例性实施例中,所述处理事件分发模块703,还用于:

通过所述上下文环境类获取来自所述模型层的数据更新事件;

通过所述上下文环境类从所述多个业务流中,确定与所述数据更新事件相关联的第二业务流;

通过所述上下文环境类将所述数据更新事件分发给所述第二业务流进行处理。

在一个示例性实施例中,所业务状态类切换模块704,用于:

通过所述业务流获取系统触发的全局事件,所述全局事件是预先在所述业务流中注册的,并基于所述全局事件对所述业务状态类进行切换;

所述业务逻辑执行模块705,还用于通过所述业务状态类执行所述全局事件对应的业务逻辑,并对所述用户界面和/或所述业务数据进行更新。

在一个示例性实施例中,所述业务流还包括可观察数据存储类;

所述业务状态类切换模块704,还用于:

通过所述业务流执行所述业务流的状态类切换方法,更新所述可观察数据存储类中的数据;

通过所述可观察数据存储类响应于所述可观察数据存储类中的数据更新事件,生成更新回调信息,所述更新回调信息用于获取第一业务状态类;

通过所述业务流基于所述更新回调信息,将所述业务流的当前业务状态类切换至所述第一业务状态类。

在一个示例性实施例中,所述业务状态类切换模块704,还用于:

通过所述业务状态类执行所述业务状态类中的切换逻辑,将第二业务状态类的标识信息发送给所述业务流,并通过调用所述业务流的状态类切换方法,更新所述可观察数据存储类中的数据;

通过所述可观察数据存储类响应于所述可观察数据存储类中的数据更新事件,生成所述更新回调信息,所述更新回调信息中包括所述第二业务状态类的标识信息;

通过所述业务流基于所述更新回调信息,将所述业务流的当前业务状态类切换至所述第二业务状态类。

在一个示例性实施例中,一个业务流对应于一个上下文环境类;一个业务状态类对应于一个业务流。

在一个示例性实施例中,所述模型层中还包括基类业务流和基类业务状态类,所述基类业务流是指可通用的业务流,所述基类业务状态类是指可通用的业务状态类;

所述处理事件分发模块703,还用于通过所述上下文环境类从所述模型层中获取所述基类业务流和所述基类业务状态类,并确定所述基类业务流所包括的基类业务状态类集合,以及确定所述基类业务状态类集合中各个所述基类业务状态类分别对应的业务逻辑和切换逻辑,生成新的业务流。

综上所述,本申请实施例提供的技术方案,通过提供用于执行业务逻辑的业务状态类,并将多个业务状态类内聚成业务流,再将多个业务流内聚成上下文环境类,实现业务逻辑之间高内聚,如此通过业务状态类即可知道业务流的整体流程,通过上下文环境类即可知道对应的业务流所具有的业务功能,便于阅读和理解,提高了业务处理系统的可维护性。

另外,各个业务状态类用于执行各个业务状态类分别对应的业务逻辑,各个业务流用于切换各个业务流对应的业务状态类,实现业务状态类之间低耦合,业务流之间低耦合,如此可低成本地装卸组合各个状态流,或各个业务状态类,进而使业务处理系统具有良好的可拓展性。

需要说明的是,上述实施例提供的装置在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与系统实施例属于同一构思,其具体实现过程详见系统实施例,这里不再赘述。

在一个示例性实施例中,还提供了一种终端,所述终端包括处理器和存储器,所述存储器中存储有计算机程序,所述计算机程序由所述处理器加载并执行以实现如上述业务处理方法。

在一个示例性实施例中,还提供了一种计算机可读存储介质,所述存储介质中存储有计算机程序,所述计算机程序在被处理器执行时以实现上述业务处理方法。

可选地,该计算机可读存储介质可以包括:ROM(Read-Only Memory,只读存储器)、RAM(Random-Access Memory,随机存储器)、SSD(Solid State Drives,固态硬盘)或光盘等。其中,随机存取记忆体可以包括ReRAM(Resistance Random Access Memory,电阻式随机存取记忆体)和DRAM(Dynamic Random Access Memory,动态随机存取存储器)。

在一个示例性实施例中,还提供了一种计算机程序产品或计算机程序,所述计算机程序产品或计算机程序包括计算机指令,所述计算机指令存储在计算机可读存储介质中。终端的处理器从所述计算机可读存储介质中读取所述计算机指令,所述处理器执行所述计算机指令,使得所述终端执行上述业务处理方法。

应当理解的是,在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。另外,本文中描述的步骤编号,仅示例性示出了步骤间的一种可能的执行先后顺序,在一些其它实施例中,上述步骤也可以不按照编号顺序来执行,如两个不同编号的步骤同时执行,或者两个不同编号的步骤按照与图示相反的顺序执行,本申请实施例对此不作限定。

以上所述仅为本申请的示例性实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

相关技术
  • 电网业务处理系统的数据同步方法、装置和业务处理系统
  • 业务处理系统、业务处理方法以及业务更新方法
技术分类

06120112811184