一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种实现复杂分支逻辑调用的方法、装置及存储介质与流程

2022-06-22 14:14:24 来源:中国专利 TAG:


1.本发明涉及软件开发技术领域,具体涉及一种实现复杂分支逻辑调用的方法、装置及存储介质。


背景技术:

2.在现有的软件开发过程中,很多产品在技术设计实现上除了考虑通用化设计以外,还会留好口子防止差异化定制化需求,技术设计都会把可扩展性留好。比如某消费贷产品放款之前需要了解用户的公积金数据来综合评估信用分,那么这款消费贷产品是全国性质的产品,公积金产品又是每个省甚至市级别都不一样,在现有技术中,一些技术人员是在类似场景技术设计上大部分都是在接口上写满了if/else语句或者swtich(case),所有的代码分支都在一个接口里面,如此就造成代码长度太长,可维护性极差,影响了可读性,一个缺陷就会导致所有公积金接口不可用;还有些技术人员是通过策略模式把每部分的逻辑都封装到不同的类里面,代码可维护性好了不少,但是缺点也很明显,如果分支判断很多,那么策略实现类就会越来越多,没法实现俯视分派和对比的业务逻辑,开发上也是很麻烦,开发时间成倍增加。因此,现今需要一种实现复杂分支逻辑调用的方法,解决现有技术中代码的可读性、可维护性差,开发成本高的问题。


技术实现要素:

3.因此,本发明要解决的技术问题在于克服现有技术中代码的可读性、可维护性差,开发成本高的问题。
4.为了解决上述技术问题,本发明提供一种实现复杂分支逻辑调用的方法,包括步骤:创建类,在所述类中创建map容器,所述map容器中包含若干键;
5.创建核心类,通过所述核心类将若干值初始化到所述map容器中,所述键映射到所述值形成键值对;
6.根据不同的所述键,通过所述核心类从所述map容器中调用所述键值对中相应的所述值。
7.可选地,不同的所述值之间相互隔离。
8.可选地,每个所述键分别映射到一个所述值。
9.可选地,所述值使用函数创建。
10.可选地,通过所述核心类将若干值初始化到所述map容器中的方法包括:使用lambda表达式实现将所述若干值初始化到所述map容器中。
11.可选地,通过所述核心类将若干值初始化到所述map容器中的方法还包括:将http接口注入所述核心类,调用所述核心类的核心方法完成所述使用lambda表达式实现将所述若干值初始化到所述map容器中。
12.可选地,所述核心类创建在所述类中。
13.为了解决上述技术问题,本发明还提供一种实现复杂分支逻辑调用的装置,包括:
存储器;以及
14.与所述存储器连接的处理器,所述处理器被配置成:
15.创建类,在所述类中创建map容器,所述map容器中包含若干键;
16.创建核心类,通过所述核心类将若干值初始化到所述map容器中,所述键映射到所述值形成键值对;
17.根据不同的所述键,通过所述核心类从所述map容器中调用所述键值对中相应的所述值。
18.可选地,所述处理器还被配置成:不同的所述值之间相互隔离。
19.为了解决上述技术问题,本发明还提供一种计算机存储介质,其上存储有计算机程序,其中所述计算机程序被机器执行时实现如上所述的方法的步骤。
20.本发明技术方案,具有如下优点:
21.1.本发明提供的一种实现复杂分支逻辑调用的方法,包括步骤:创建类,在所述类中创建map容器,所述map容器中包含若干键;创建核心类,通过所述核心类将若干值初始化到所述map容器中,所述键映射到所述值形成键值对;根据不同的所述键,通过所述核心类从所述map容器中调用所述键值对中相应的所述值。
22.通过在一个类中创建多个方法类(值)去实现不同的需求,提高了代码可读性、可维护性和复用率,降低了开发成本,使开发敏捷迅速,并且避免了把每部分的逻辑都封装到不同的类里面,由于分支判断很多,造成策略实现类会越来越多,没法俯视分派和对比的业务逻辑,开发时间成倍增加的问题。
23.2.进一步,不同的所述值之间相互隔离。如此可以避免由于代码过长影响了可读性,造成可维护性差,因此提高了代码可读性、可维护性和复用率,降低了开发成本,使开发敏捷迅速。
24.3.进一步,所述值使用函数创建。使用函数更加方便,函数式编程的代码有更高的信噪比,函数式编程的代码不仅简洁优雅,不易出错,而且效率更高,易于优化改进和并行化,从而降低了开发成本,使开发敏捷迅速。
25.4.进一步,通过所述核心类将若干值初始化到所述map容器中的方法包括:使用lambda表达式实现将所述若干值初始化到所述map容器中。通过一行代码lambda表达式来实现初始化,提高了代码可读性、可维护性和复用率,降低了开发成本,使开发敏捷迅速。
附图说明
26.为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
27.图1为本发明的一实施方式中提供的一种实现复杂分支逻辑调用的方法的流程图;
28.图2为本发明的一实施方式中提供的一种实现复杂分支逻辑调用的方法的实现过程示意图;
29.图3为本发明的一实施方式中提供的一种实现复杂分支逻辑调用的装置的模块框
图。
具体实施方式
30.下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
31.此外,下面所描述的本发明不同实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互结合。
32.本发明一实施例提供一种实现复杂分支逻辑调用的方法,参考图1,图1为本发明的一实施方式中提供的一种实现复杂分支逻辑调用的方法的流程图,应当理解的是,该方法还可以包括未示出的附加框和/或可以省略所示出的框,本发明的范围在此方面不受限制。包括如下步骤:
33.在步骤101处,创建类,在所述类中创建map容器,所述map容器中包含若干键。
34.具体地,在一些实施例中,基于java jdk8来实现本发明的方法,使用java新建一个类,在所述类中创建map容器,map是一种把键对象和值对象进行关联的容器,map容器提供了一种映射关系,其中的元素是以键值对的形式存储的,能够实现根据key(键)快速查找value(值),map容器中的键值对以entry类型的对象实例形式存在,键(key)不可重复,value值可以重复,一个value值可以和很多键形成对应关系,每个键最多只能映射到一个value值。map容器的键是不可以重复的。当map容器有相同key的时候,key是不可以重复的。后面的key对应的值value会覆盖前面key对应的值value。在一些实施例中,参考图2,以调用各省公积金数据为例,key作为区分各省的type:areatype。
35.在步骤102处,创建核心类,通过所述核心类将若干值初始化到所述map容器中,所述键映射到所述值形成键值对。
36.具体地,所述核心类可以创建在前述类中,也可以在所述类之外创建。在一些实施例中,所述值之间相互隔离,分不同的方法隔离来实现。如此可以避免由于代码过长影响了可读性,造成可维护性差,因此提高了代码可读性、可维护性和复用率,降低了开发成本,使开发敏捷迅速。
37.在一些实施例中,参考图2,以调用各省公积金数据为例,所述值为浙江的逻辑处理、江苏的逻辑处理、安徽的逻辑处理、江西的逻辑处理、上海的逻辑处理等,通过所述核心类将所述值初始化到所述map容器中。
38.在一些实施例中,所述值使用函数创建。使用函数更加方便,函数式编程的代码有更高的信噪比,函数式编程的代码不仅简洁优雅,不易出错,而且效率更高,易于优化改进和并行化,从而降低了开发成本,使开发敏捷迅速。
39.在一些实施例中,通过所述核心类将若干值初始化到所述map容器中的方法包括:使用lambda表达式实现将所述若干值初始化到所述map容器中。有了lambda表达式之后,可以在java里充分发挥函数式编程的威力,使用函数式风格,得到表达性更佳,更简洁,赋值操作更少,错误更少的代码,从而提高了代码可读性、可维护性和复用率,降低了开发成本,使开发敏捷迅速。
40.在一些实施例中,通过所述核心类将若干值初始化到所述map容器中的方法还包
括:将http接口注入所述核心类,调用所述核心类的核心方法完成所述使用lambda表达式实现将所述若干值初始化到所述map容器中。
41.在步骤103处,根据不同的所述键,通过所述核心类从所述map容器中调用所述键值对中对应的所述值。
42.具体地,参考图2,以调用各省公积金数据为例,当调用浙江的公积金数据时,根据浙江的aeratype,通过所述核心类从map容器中调用浙江的逻辑处理,从而获取到浙江的公积金数据。
43.图3为本发明的一实施方式中提供的一种实现复杂分支逻辑调用的装置的模块框图。该装置包括:
44.存储器201;以及与所述存储器201连接的处理器202,所述处理器202被配置成:创建类,在所述类中创建map容器,所述map容器中包含若干键;创建核心类,通过所述核心类将若干值初始化到所述map容器中,所述键映射到所述值形成键值对;根据不同的所述键,通过所述核心类从所述map容器中调用所述键值对中相应的所述值。
45.在一些实施例中,处理器202还被配置成:不同的所述值之间相互隔离。
46.在一些实施例中,处理器202还被配置成:每个所述键分别映射到一个所述值。
47.在一些实施例中,处理器202还被配置成:所述值使用函数创建。
48.在一些实施例中,处理器202还被配置成:通过所述核心类将若干值初始化到所述map容器中的方法包括:使用lambda表达式实现将所述若干值初始化到所述map容器中。
49.在一些实施例中,处理器202还被配置成:通过所述核心类将若干值初始化到所述map容器中的方法还包括:将http接口注入所述核心类,调用所述核心类的核心方法完成所述使用lambda表达式实现将所述若干值初始化到所述map容器中。
50.在一些实施例中,处理器202还被配置成:所述核心类创建在所述类中。
51.具体实现方法参考前述方法实施例,此处不再赘述。
52.根据本发明的各种实施方式,通过在一个类中创建多个方法类(值)去实现不同的需求,提高了代码可读性、可维护性和复用率,降低了开发成本,使开发敏捷迅速,并且避免了把每部分的逻辑都封装到不同的类里面,由于分支判断很多,造成策略实现类会越来越多,没法俯视分派和对比的业务逻辑,开发时间成倍增加的问题。
53.本发明可以是方法、装置、系统和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本发明的各个方面的计算机可读程序指令。
54.计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式压缩盘只读存储器(cd-rom)、数字多功能盘(dvd)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
55.这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
56.用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如smalltalk、c 等,以及常规的过程式编程语言—诸如“c”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。
57.这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
58.这些计算机可读程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理单元,从而生产出一种机器,使得这些指令在通过计算机或其他可编程数据处理装置的处理单元执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
59.也可以把计算机可读程序指令加载到计算机、其他可编程数据处理装置、或其他设备上,使得在计算机、其他可编程数据处理装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其他可编程数据处理装置、或其他设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
60.附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动
作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
61.注意,除非另有直接说明,否则本说明书(包含任何所附权利要求、摘要和附图)中所揭示的所有特征皆可由用于达到相同、等效或类似目的的可替代特征来替换。因此,除非另有明确说明,否则所公开的每一个特征仅是一组等效或类似特征的一个示例。在使用到的情况下,进一步地、较优地、更进一步地和更优地是在前述实施例基础上进行另一实施例阐述的简单起头,该进一步地、较优地、更进一步地或更优地后带的内容与前述实施例的结合作为另一实施例的完整构成。在同一实施例后带的若干个进一步地、较优地、更进一步地或更优地设置之间可任意组合的组成又一实施例。
62.本领域的技术人员应理解,上述描述及附图中所示的本发明的实施例只作为举例而并不限制本发明。本发明的目的已经完整并有效地实现。本发明的功能及结构原理已在实施例中展示和说明,在没有背离所述原理下,本发明的实施方式可以有任何变形或修改。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献