CN111367524B - 枚举类型设计方法及装置 - Google Patents
枚举类型设计方法及装置 Download PDFInfo
- Publication number
- CN111367524B CN111367524B CN202010188650.9A CN202010188650A CN111367524B CN 111367524 B CN111367524 B CN 111367524B CN 202010188650 A CN202010188650 A CN 202010188650A CN 111367524 B CN111367524 B CN 111367524B
- Authority
- CN
- China
- Prior art keywords
- enumeration
- file
- information
- intermediate file
- variable
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了枚举类型设计方法及装置、电子设备、计算机存储介质,获取枚举信息,枚举信息包括枚举变量、枚举值、枚举说明;执行编写的脚本,生成包含枚举信息的中间文件;利用中间文件封装公共方法到公共方法文件;引用中间文件,使用公共方法文件中的公共方法实现对应的枚举功能。在开发初期将枚举相关的处理脚本开发好,后期开发过程中如果枚举信息发生调整,只需要再执行一次脚本文件,重新生成好相关的中间文件即可;在需要用到枚举功能的时候,引用相关的中间文件,在代码中使用封装好的公共方法,就可以实现与该公共方法相对应的枚举功能,带来开发效率的提升,并且涉及到同一个枚举的不同报表,页面呈现和数据都会保持高度统一。
Description
技术领域
本申请涉及数据处理技术领域,尤其涉及枚举类型设计方法及装置、电子设备、计算机存储介质。
背景技术
公司的后台报表系统都会涉及到枚举信息在前端呈现时的同步问题,前端呈现例如是下拉框筛选项,或者报表内容字段呈现涉及到的枚举值匹配转化。
对于下拉框筛选项,通常做法是在前端文件如html文件中直接罗列所有选项内容,或者从后端接口接收选项需要的数据,再通过js中的方法处理生成。对于报表内容字段呈现枚举值匹配转化,后端处理一般是从数据库查询出来之后,在控制器中通过if-else、switch等条件表达式来处理,也可以在数据库查询语句中直接通过条件表达式处理;前端处理方法与之类似,可以在js代码中通过条件表达式处理。
以上处理方式有如下缺点:同一个枚举变量的选项发生变化之后,涉及到使用该枚举的每个文件都要修改,容易遗漏,出现bug;重复代码较多,扩展性较差,开发效率较低。
发明内容
本申请的目的在于提供枚举类型设计方法及装置、电子设备、计算机存储介质,解决现有技术中的不足,在代码中快速、高效的使用枚举,并保持枚举信息与页面呈现的统一性。
本申请的目的采用以下技术方案实现:
第一方面,本申请提供了一种枚举类型设计方法,包括:
获取枚举信息,所述枚举信息包括枚举变量、枚举值、枚举说明;其中,每个枚举变量对应一个或多个枚举值,每个枚举值对应一个枚举说明;
执行编写的脚本,生成包含枚举信息的中间文件;
利用所述中间文件封装公共方法到公共方法文件;
引用所述中间文件,使用所述公共方法文件中的公共方法实现对应的枚举功能。
这样,在开发初期将枚举相关的处理脚本开发好,在后期的报表页面开发过程中,如果枚举变量、枚举值或者枚举说明发生调整,只需要再执行一次脚本文件,重新生成好相关的中间文件即可;在需要用到枚举功能的时候,引用相关的中间文件,在代码中使用封装好的公共方法,就可以实现与该公共方法相对应的枚举功能。由于只需要开发一次,后期的系统报表开发工作将会变得非常便捷高效;涉及到同一个枚举的不同报表,页面呈现和数据都会保持高度统一。特别是在多页面涉及到同一个枚举、一个页面涉及多个枚举变量以及一个枚举变量涉及到多个枚举值的情况下,优势较为明显,代码明显更为简洁,封装性扩展性更强,开发效率可以得到明显的提升,同时也可以降低人为失误率。
可选地,所述获取枚举信息,包括:
建立枚举数据表,所述枚举数据表包括所述枚举变量及其对应的枚举值、以及所述枚举值对应的枚举说明;
利用开发的接口获取所述枚举数据表中的枚举信息。
这样,建立枚举数据表来存储枚举信息,使用接口来获取所有有效的枚举变量以及相关的枚举值、枚举说明详细列表。枚举信息接口只需要开发一次,所获取的数据可以用作脚本处理的数据源。
可选地,所述枚举数据表包括枚举表和枚举关联子表,所述枚举表包含一个或多个所述枚举变量,所述枚举关联子表包含所述枚举变量对应的枚举值以及所述枚举值对应的枚举说明。
这样,建立枚举表以及枚举关联子表来存储枚举信息。
可选地,还包括:
建立枚举管理页面,利用所述枚举管理页面对所述枚举数据表中的所述枚举信息进行新增、编辑或软删除的操作。
这样,利用枚举管理页面实现枚举变量的新增、编辑和软删除功能,对每一个枚举变量对应的枚举值和枚举说明键值对信息,也实现新增、编辑和软删除功能。
可选地,还包括:
在所述枚举管理页面中记录对所述枚举信息进行的操作。
现有技术下枚举信息不易管理,在发生变化之后,只能通过查询开发文档或者代码注释才能知道。本方法在实现增删改查功能的过程中,增加相关调整记录,这一过程实现了对枚举变量、枚举值、枚举说明的页面化管理,同时可以追溯所有的调整记录,实现监管以及数据的可恢复性。
可选地,还包括:
当所述枚举信息发生调整后,执行所述脚本,重新生成所述中间文件。
这样,在枚举信息发生调整后,再执行一次脚本文件,重新生成好相关的中间文件,保持枚举信息与页面呈现的统一性。
可选地,所述引用所述中间文件,使用所述公共方法文件中的公共方法实现对应的枚举功能,包括:
引用所述中间文件,使用所述公共方法文件中的公共方法,获取所述中间文件中的枚举信息,生成下拉框;或者,
引用所述中间文件,使用所述公共方法文件中的公共方法,将所述枚举值转化为所述枚举值对应的枚举说明。
本方法可以实现多种枚举功能,例如是生成下拉框,或者实现枚举值与枚举说明的匹配转化。
可选地,所述中间文件是静态js文件,所述中间文件中定义有一个对象变量,所述对象变量以所述枚举变量为属性,所述对象变量对应的值是包含所述枚举变量对应的所有枚举值及其对应的枚举说明的对象。
本方法可适用于js语言的场合,通过脚本生成一个静态js文件,该静态js文件中定义一个对象变量,利用该静态js文件封装一个公共方法到公共方法库,该公共方法可以用于生成下拉框,且代码扩展性强,枚举变量、枚举值或者枚举说明发生变化之后,不需要修改代码。将本方法用于html文件前端下拉框代码处理,在多个html文件涉及到该枚举的情况下,页面呈现内容可以保持高度统一,不会出现遗漏。
可选地,所述中间文件是php枚举类型文件,所述中间文件包括一个静态变量的php枚举类型,所述静态变量包含所述枚举信息。
本方法可适用于php语言的场合,通过脚本生成一个php枚举类型文件,该php枚举类型文件中包括一个静态变量,利用该php枚举类型文件封装一个公共方法到公共方法库,该公共方法可以利用静态变量来实现枚举值与枚举说明的匹配转化,在实践中可以极大地缩减代码量,只需要一行代码就可以取代原本多行的代码,代码明显高效简洁,在枚举值较多的情况下尤为明显;代码逻辑高度统一,不易出错;扩展性强,枚举变量、枚举值或者枚举说明发生变化时,不需要修改代码。
第二方面,本申请提供了一种枚举类型设计装置,包括:
数据获取模块,用于获取枚举信息,所述枚举信息包括枚举变量、枚举值、枚举说明;其中,每个枚举变量对应一个或多个枚举值,每个枚举值对应一个枚举说明;
脚本执行模块,用于执行编写的脚本,生成包含枚举信息的中间文件;
封装模块,用于利用所述中间文件封装公共方法到公共方法文件;
枚举实现模块,用于引用所述中间文件,使用所述公共方法文件中的公共方法实现对应的枚举功能。
可选地,所述数据获取模块包括:
数据表建立单元,用于建立枚举数据表,所述枚举数据表包括所述枚举变量及其对应的枚举值、以及所述枚举值对应的枚举说明;
数据获取单元,用于利用开发的接口获取所述枚举数据表中的枚举信息。
可选地,所述枚举数据表包括枚举表和枚举关联子表,所述枚举表包含一个或多个所述枚举变量,所述枚举关联子表包含所述枚举变量对应的枚举值以及所述枚举值对应的枚举说明。
可选地,所述数据获取模块还包括数据管理单元,用于建立枚举管理页面,利用所述枚举管理页面对所述枚举数据表中的所述枚举信息进行新增、编辑或软删除的操作。
可选地,所述数据管理单元还用于在所述枚举管理页面中记录对所述枚举信息进行的操作。
可选地,所述脚本执行模块还用于当所述枚举信息发生调整后,执行所述脚本,重新生成所述中间文件。
可选地,所述枚举实现模块包括下拉框生成单元或者枚举值转化单元;
下拉框生成单元用于引用所述中间文件,使用所述公共方法文件中的公共方法,获取所述中间文件中的枚举信息,生成下拉框;
枚举值转化单元用于引用所述中间文件,使用所述公共方法文件中的公共方法,将所述枚举值转化为所述枚举值对应的枚举说明。
可选地,所述中间文件是静态js文件,所述中间文件中定义有一个对象变量,所述对象变量以所述枚举变量为属性,所述对象变量对应的值是包含所述枚举变量对应的所有枚举值及其对应的枚举说明的对象。
可选地,所述中间文件是php枚举类型文件,所述中间文件包括一个静态变量的php枚举类型,所述静态变量包含所述枚举信息。
第三方面,本申请提供了一种电子设备,包括处理器和存储器,所述处理器执行所述存储器存储的计算机指令,使得所述电子设备执行上述任一项枚举类型设计方法。
第四方面,本申请提供了一种计算机存储介质,包括计算机指令,当所述计算机指令在电子设备上运行时,使得所述电子设备执行上述任一项枚举类型设计方法。
与现有技术相比,本申请的技术效果包括:
本申请公开了枚举类型设计方法及装置、电子设备、计算机存储介质,在开发初期将枚举相关的处理脚本开发好,在后期的报表页面开发过程中,如果枚举信息发生调整,只需要再执行一次脚本文件,重新生成好相关的中间文件即可;在需要用到枚举功能的时候,引用相关的中间文件,在代码中使用封装好的公共方法,就可以实现与该公共方法相对应的枚举功能。由于只需要开发一次,后期的系统报表开发工作将会变得非常便捷高效;涉及到同一个枚举的不同报表,页面呈现和数据都会保持高度统一。特别是在多页面涉及到同一个枚举、一个页面涉及多个枚举变量以及一个枚举变量涉及到多个枚举值的情况下,优势较为明显,代码明显更为简洁,封装性扩展性更强,开发效率可以得到明显的提升,同时也可以降低人为失误率。本申请将项目系统报表开发中枚举相关的一些重复开发过程、重复的代码等不必要的开发内容,通过前期的枚举框架设计方案来代替,可以明显提升开发效率,使开发人员更专注于其他的核心开发内容;另一方面,将一些本来需要通过接口获取或者人为机械式书写的代码,例如下拉框代码或者枚举值匹配转化代码等,通过读取静态文件的方式来处理得到,在优化冗余代码、提升开发效率的同时,没有降低代码运行效率,甚至比通过接口获取的方式运行效率更高。
附图说明
下面结合附图和实施例对本申请进一步说明。
图1是第一实施例提供的枚举类型设计方法的第一种流程示意图;
图2是图1中步骤S110的一种流程示意图;
图3是第一实施例提供的枚举类型设计方法的第二种流程示意图的一部分;
图4是图1中步骤S140的一种流程示意图;
图5是第二实施例提供的枚举类型设计装置200的一种结构示意图;
图6是图5中数据获取模块210的一种结构示意图;
图7是图5中枚举实现模块240的一种结构示意图。
图中:200、枚举类型设计装置;210、数据获取模块;211、数据表建立单元;212、数据管理单元;213、数据获取单元;220、脚本执行模块;230、封装模块;240、枚举实现模块;241、下拉框生成单元;242、枚举值转化单元。
具体实施方式
下面,结合附图以及具体实施方式,对本申请做进一步描述,需要说明的是,在不相冲突的前提下,以下描述的各实施例之间或各技术特征之间可以任意组合形成新的实施例。
参见图1,第一实施例提供了一种枚举类型设计方法,包括步骤S110~S140。
在C#或C++、java等一些计算机编程语言中,枚举类型是一种基本数据类型而不是构造数据类型,而在C语言等计算机编程语言中,枚举类型是一种构造数据类型。枚举类型用于声明一组命名的常数,当一个变量有几种可能的取值时,可以将它定义为枚举类型,其定义是指将变量的值一一列出来,变量的值只限于列举出来的值的范围内。枚举类型可以通过enum语句来定义。
步骤S110:获取枚举信息,所述枚举信息包括枚举变量、枚举值、枚举说明;其中,每个枚举变量对应一个或多个枚举值,每个枚举值对应一个枚举说明。
枚举信息中可以包括一个或多个枚举变量。枚举变量例如是is_dial(是否拨通),枚举值例如是0、1、2、3,枚举值0、1、2、3对应的枚举说明例如是未拨打(短信未发送)、已拨通、已拨打未接通、未拨打(短信已发送)。另一枚举变量例如是快递的扫描类型(scan_typ),枚举值例如是1、2、3、4,对应的枚举说明例如是扫描录入、揽收录入、分拨到达、分拨发出。
参见图2,所述步骤S110可以包括步骤S111~S113。
步骤S111:建立枚举数据表,所述枚举数据表包括所述枚举变量及其对应的枚举值、以及所述枚举值对应的枚举说明。
建立枚举数据表来存储枚举信息,所述枚举数据表可以包括枚举表和枚举关联子表这样两个表,所述枚举表包含一个或多个所述枚举变量,所述枚举关联子表包含所述枚举变量对应的枚举值以及所述枚举值对应的枚举说明。
枚举表以枚举变量名为唯一键。枚举关联子表是每个枚举变量的所对应的详细信息存储表,以第一张表的主键为关联字段。举例说明,假设枚举表主键为enum_id,对应一个enum_name(枚举),枚举关联子表则存储有多条与enum_id关联的包含field_name(枚举值)和field_value(枚举说明)的数据,形成一个完整的枚举信息。例如枚举表包括一个枚举变量,该枚举变量是快递的扫描类型(scan_typ),枚举关联子表包含枚举变量快递的扫描类型对应的枚举值1、2、3、4,以及1、2、3、4对应的枚举说明扫描录入、揽收录入、分拨到达、分拨发出。
步骤S112:建立枚举管理页面,利用所述枚举管理页面对所述枚举数据表中的所述枚举信息进行新增、编辑或软删除的操作。
软删除是指在删除数据表中的数据时,并不直接将其从数据表中删除,而是将其标记为删除,即在每张表中设置一个删除字段,例如是IsDeleted,默认情况下其值为0,即未删除状态;当需要将数据删除时,则将此字段更新为1,即删除状态。需要注意的是,与硬删除,即彻底删除相比,软删除并不真正删除数据库中的数据,数据是可以恢复的,只是对用户来说不可见,好处是如果用户误删了某些数据,可以方便地将软删除的数据找回。利用枚举管理页面实现枚举变量的新增、编辑和软删除功能,对每一个枚举变量对应的枚举值和枚举说明键值对信息,也实现新增、编辑和软删除功能。涉及到枚举信息的调整,只需要在枚举管理页面添加、修改或者删除,优化了开发人员的使用体验。
步骤S112还可以包括:在所述枚举管理页面中记录对所述枚举信息进行的操作。
现有技术下枚举信息不易管理,在发生变化之后,只能通过查询开发文档或者代码注释才能知道。本方法在实现增删改查功能的过程中,增加相关调整记录,这一过程实现了对枚举变量、枚举值、枚举说明的页面化管理,同时可以追溯所有的调整记录,实现监管以及数据的可恢复性。
步骤S113:利用开发的接口获取所述枚举数据表中的枚举信息。
使用接口来获取所有有效的枚举变量以及相关的枚举值、枚举说明详细列表。枚举信息接口只需要开发一次,所获取的数据可以用作步骤S120中脚本处理的数据源。
步骤S120:执行编写的脚本,生成包含枚举信息的中间文件。
中间文件例如是静态js文件、php枚举类型文件等。中间文件包含枚举信息,在被引用时,调用封装好的公共方法,可以实现与公共方法相对应的枚举功能。公共方法例如是生成下拉框的方法,或者是将枚举值转化为枚举值对应的枚举说明的方法。js,即JavaScript,是属于html和web的编程语言。php即超文本预处理器,是一种通用开源脚本语言。php是在服务器端执行的脚本语言,与C语言类似,是常用的网站编程语言。php独特的语法混合了C、java、perl以及php自创的语法,主要适用于web开发领域。
参见图3,步骤S120后,本方法还可以包括步骤S121:当所述枚举信息发生调整后,执行所述脚本,重新生成所述中间文件。这样,在枚举信息发生调整后,再执行一次脚本文件,重新生成好相关的中间文件,保持枚举信息与页面呈现的统一性。判断枚举信息是否发生调整的方式可以是根据枚举管理页面是否对枚举信息进行新增、编辑或者软删除的操作来进行判断,如果枚举管理页面对枚举信息进行新增、编辑或者软删除的操作,则判断枚举信息发生调整。
步骤S130:利用所述中间文件封装公共方法到公共方法文件。
例如,利用静态js文件封装第一公共方法到公共方法文件,利用php枚举类型文件封装第二公共方法到公共方法文件。一个中间文件可以对应一个或多个公共方法,用于实现不同的枚举功能。
步骤S140:引用所述中间文件,使用所述公共方法文件中的公共方法实现对应的枚举功能。
本方法可以实现多种枚举功能,例如是生成下拉框,或者实现枚举值与枚举说明的匹配转化。
参见图4,所述步骤S140可以包括步骤S141或者步骤S142。
步骤S141:引用所述中间文件,使用所述公共方法文件中的公共方法,获取所述中间文件中的枚举信息,生成下拉框。
以html文件生成下拉框的过程为例,包括步骤R1~R3。
步骤R1:执行脚本生成中间文件,所生成的中间文件是静态js文件,例如是静态enum_map.js文件。该静态js文件中定义有一个对象变量,所述对象变量以所述枚举变量为属性,所述对象变量对应的值是包含所述枚举变量对应的所有枚举值及其对应的枚举说明的对象。例如枚举变量是快递的扫描类型(scan_typ),对象变量以枚举变量快递的扫描类型为属性,对象变量对应的值是包含枚举值1、2、3、4及其枚举说明扫描录入、揽收录入、分拨到达、分拨发出的对象。
步骤R2:在公共方法文件中封装一个公共方法,该公共方法通过获取上述静态js文件中的对象变量以及html文件涉及的枚举值,来拼接出select(筛选项)下拉框需要的option(选项)信息。
步骤R3:在所要开发的报表html页面中引入上述静态js文件与公共方法文件,下拉框开发完成。下拉框的内容会随着enum_map.js文件内容的变化而变化,从而实现枚举的统一配置与页面展现。
本方法可适用于js语言的场合,代码扩展性强,枚举变量、枚举值或者枚举说明发生变化之后,不需要修改代码。将本方法用于html文件前端下拉框代码处理,在多个html文件涉及到该枚举的情况下,页面呈现内容可以保持高度统一,不会出现遗漏。
步骤S142:引用所述中间文件,使用所述公共方法文件中的公共方法,将所述枚举值转化为所述枚举值对应的枚举说明。
控制器中枚举值匹配转化为枚举说明字段的过程,以is_dial(是否拨通)这个枚举变量为例,is_dial包含0、1、2、3四个枚举值,分别对应未拨打(短信未发送),已拨通,已拨打未接通,未拨打(短信已发送)这四个枚举说明。如果不采用本方法,在控制器中的处理方式为拿到is_dial的值之后,用if else条件表达式来一个一个匹配,从而检索出对应的状态。如果枚举值列表发生改变,则需要重新写条件表达式的区间,为开发人员带来很大不便。
采用本方法来实现枚举值的匹配转化时,首先,执行脚本生成一个php枚举类型文件,例如是Eis_dial.php枚举类,该php枚举类型文件包括一个静态变量的php枚举类型,所述静态变量包含所述枚举信息。然后利用该php枚举类型文件封装一个公共方法到公共方法库,该公共方法可以利用静态变量来实现枚举值与枚举说明的匹配转化。本方法可适用于php语言的场合,在实践中可以极大地缩减代码量,只需要一行代码就可以取代原本多行的代码,代码明显高效简洁,在枚举值较多的情况下尤为明显;代码逻辑高度统一,不易出错;扩展性强,枚举变量、枚举值或者枚举说明发生变化时,不需要修改代码。
可以理解的是,除js语言、php语言之外,第一实施例还可适用于BASIC(Truebasic、Qbasic、Virtual Basic)、C、C++、PASCAL、FORTRAN、智能化语言(LISP、Prolog、CLIPS、OpenCyc、Fazzy)、动态语言(Python、Ruby、Lua)等其他计算机语言的场合。
第一实施例中的枚举类型设计方法,其主要开发重点在于前期的框架设计,在开发初期将枚举相关的枚举数据表、枚举管理页面、枚举信息接口以及处理脚本开发好,在后期的报表页面开发过程中,如果枚举信息发生调整,只需要再执行一次脚本文件,重新生成好相关的中间文件即可;在需要用到枚举功能的时候,引用相关的中间文件,例如静态js文件或者php枚举类型文件,在代码中使用封装好的公共方法,就可以实现与该公共方法相对应的枚举功能。由于只需要开发一次,后期的系统报表开发工作将会变得非常便捷高效;涉及到同一个枚举的不同报表,页面呈现和数据都会保持高度统一。特别是在多页面涉及到同一个枚举、一个页面涉及多个枚举变量以及一个枚举变量涉及到多个枚举值的情况下,优势较为明显,代码明显更为简洁,封装性扩展性更强,开发效率可以得到明显的提升,同时也可以降低人为失误率。本实施例将项目系统报表开发中枚举相关的一些重复开发过程、重复的代码等不必要的开发内容,通过前期的枚举框架设计方案来代替,可以明显提升开发效率,使开发人员更专注于其他的核心开发内容;另一方面,将一些本来需要通过接口获取或者人为机械式书写的代码,例如下拉框代码或者枚举值匹配转化代码等,通过读取静态文件的方式来处理得到,在优化冗余代码、提升开发效率的同时,没有降低代码运行效率,甚至比通过接口获取的方式运行效率更高。
参见图5,第二实施例提供了一种枚举类型设计装置200,包括数据获取模块210、脚本执行模块220、封装模块230、枚举实现模块240,数据获取模块210与脚本执行模块220进行数据交互,脚本执行模块220还与封装模块230进行数据交互,封装模块230还与枚举实现模块240进行数据交互,枚举实现模块240还与脚本执行模块220进行数据交互。
数据获取模块210用于获取枚举信息,所述枚举信息包括枚举变量、枚举值、枚举说明;其中,每个枚举变量对应一个或多个枚举值,每个枚举值对应一个枚举说明。
脚本执行模块220用于执行编写的脚本,生成包含枚举信息的中间文件。
封装模块230用于利用所述中间文件封装公共方法到公共方法文件。
枚举实现模块240用于引用所述中间文件,使用所述公共方法文件中的公共方法实现对应的枚举功能。
参见图6,所述数据获取模块210可以包括数据表建立单元211、数据管理单元212、数据获取单元213,数据表建立单元211分别与数据管理单元212、数据获取单元213进行数据交互。
数据表建立单元211用于建立枚举数据表,所述枚举数据表包括所述枚举变量及其对应的枚举值、以及所述枚举值对应的枚举说明。
具体地,所述枚举数据表可以包括枚举表和枚举关联子表,所述枚举表包含一个或多个所述枚举变量,所述枚举关联子表包含所述枚举变量对应的枚举值以及所述枚举值对应的枚举说明。
数据管理单元212用于建立枚举管理页面,利用所述枚举管理页面对所述枚举数据表中的所述枚举信息进行新增、编辑或软删除的操作。
优选地,所述数据管理单元212还可以用于在所述枚举管理页面中记录对所述枚举信息进行的操作。
数据获取单元213用于利用开发的接口获取所述枚举数据表中的枚举信息。
优选地,所述脚本执行模块220还可以用于当所述枚举信息发生调整后,执行所述脚本,重新生成所述中间文件。
优选地,所述中间文件是静态js文件,所述中间文件中定义有一个对象变量,所述对象变量以所述枚举变量为属性,所述对象变量对应的值是包含所述枚举变量对应的所有枚举值及其对应的枚举说明的对象。
优选地,所述中间文件是php枚举类型文件,所述中间文件包括一个静态变量的php枚举类型,所述静态变量包含所述枚举信息。
优选地,所述枚举实现模块240可以包括下拉框生成单元241或者枚举值转化单元242。
下拉框生成单元241用于引用所述中间文件,使用所述公共方法文件中的公共方法,获取所述中间文件中的枚举信息,生成下拉框。
枚举值转化单元242用于引用所述中间文件,使用所述公共方法文件中的公共方法,将所述枚举值转化为所述枚举值对应的枚举说明。
本实施例将项目系统报表开发中枚举相关的一些重复开发过程、重复的代码等不必要的开发内容,通过前期的枚举框架设计方案来代替,可以明显提升开发效率,使开发人员更专注于其他的核心开发内容;另一方面,将一些本来需要通过接口获取或者人为机械式书写的代码,例如下拉框代码或者枚举值匹配转化代码等,通过读取静态文件的方式来处理得到,在优化冗余代码、提升开发效率的同时,没有降低代码运行效率,甚至比通过接口获取的方式运行效率更高。
第三实施例提供了一种电子设备,该电子设备包括处理器和存储器,处理器执行存储器存储的计算机指令,使得电子设备执行上述任一项枚举类型设计方法。
第四实施例提供了一种计算机存储介质,该计算机存储介质包括计算机指令,当计算机指令在电子设备上运行时,使得电子设备执行上述任一项枚举类型设计方法。
本申请从使用目的上,效能上,进步及新颖性等观点进行阐述,其设置有的实用进步性,已符合专利法所强调的功能增进及使用要件,本申请以上的说明及附图,仅为本申请的较佳实施例而已,并非以此局限本申请,因此,凡一切与本申请构造,装置,特征等近似、雷同的,即凡依本申请专利申请范围所作的等同替换或修饰等,皆应属本申请的专利申请保护的范围之内。
Claims (8)
1.一种枚举类型设计方法,其特征在于,包括:
获取枚举信息,所述枚举信息包括枚举变量、枚举值、枚举说明;其中,每个枚举变量对应一个或多个枚举值,每个枚举值对应一个枚举说明;
执行编写的脚本,生成包含枚举信息的中间文件;当所述中间文件是静态js文件时,所述中间文件中定义有一个对象变量,所述对象变量以所述枚举变量为属性,所述对象变量对应的值是包含所述枚举变量对应的所有枚举值及其对应的枚举说明的对象;
利用所述中间文件封装公共方法到公共方法文件;
引用所述中间文件,使用所述公共方法文件中的公共方法实现对应的枚举功能;
其中,所述引用所述中间文件,使用所述公共方法文件中的公共方法实现对应的枚举功能,包括:
引用所述中间文件,使用所述公共方法文件中的公共方法,获取所述中间文件中的枚举信息,生成下拉框;或者,
引用所述中间文件,使用所述公共方法文件中的公共方法,将所述枚举值转化为所述枚举值对应的枚举说明。
2.根据权利要求1所述的枚举类型设计方法,其特征在于,所述获取枚举信息,包括:
建立枚举数据表,所述枚举数据表包括所述枚举变量及其对应的枚举值、以及所述枚举值对应的枚举说明;
利用开发的接口获取所述枚举数据表中的枚举信息。
3.根据权利要求2所述的枚举类型设计方法,其特征在于,所述枚举数据表包括枚举表和枚举关联子表,所述枚举表包含一个或多个所述枚举变量,所述枚举关联子表包含所述枚举变量对应的枚举值以及所述枚举值对应的枚举说明。
4.根据权利要求2所述的枚举类型设计方法,其特征在于,还包括:
建立枚举管理页面,利用所述枚举管理页面对所述枚举数据表中的所述枚举信息进行新增、编辑或软删除的操作。
5.根据权利要求4所述的枚举类型设计方法,其特征在于,还包括:
在所述枚举管理页面中记录对所述枚举信息进行的操作。
6.根据权利要求1所述的枚举类型设计方法,其特征在于,还包括:
当所述枚举信息发生调整后,执行所述脚本,重新生成所述中间文件。
7.根据权利要求1所述的枚举类型设计方法,其特征在于,当所述中间文件是php枚举类型文件时,所述中间文件包括一个静态变量的php枚举类型,所述静态变量包含所述枚举信息。
8.一种枚举类型设计装置,其特征在于,包括:
数据获取模块,用于获取枚举信息,所述枚举信息包括枚举变量、枚举值、枚举说明;其中,每个枚举变量对应一个或多个枚举值,每个枚举值对应一个枚举说明;
脚本执行模块,用于执行编写的脚本,生成包含枚举信息的中间文件;当所述中间文件是静态js文件时,所述中间文件中定义有一个对象变量,所述对象变量以所述枚举变量为属性,所述对象变量对应的值是包含所述枚举变量对应的所有枚举值及其对应的枚举说明的对象;
封装模块,用于利用所述中间文件封装公共方法到公共方法文件;
枚举实现模块,用于引用所述中间文件,使用所述公共方法文件中的公共方法实现对应的枚举功能;
其中,所述枚举实现模块包括下拉框生成单元或者枚举值转化单元;
下拉框生成单元用于引用所述中间文件,使用所述公共方法文件中的公共方法,获取所述中间文件中的枚举信息,生成下拉框;
枚举值转化单元用于引用所述中间文件,使用所述公共方法文件中的公共方法,将所述枚举值转化为所述枚举值对应的枚举说明。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010188650.9A CN111367524B (zh) | 2020-03-17 | 2020-03-17 | 枚举类型设计方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010188650.9A CN111367524B (zh) | 2020-03-17 | 2020-03-17 | 枚举类型设计方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111367524A CN111367524A (zh) | 2020-07-03 |
CN111367524B true CN111367524B (zh) | 2023-08-29 |
Family
ID=71204517
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010188650.9A Active CN111367524B (zh) | 2020-03-17 | 2020-03-17 | 枚举类型设计方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111367524B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112540959B (zh) * | 2020-12-14 | 2023-01-10 | 中国建设银行股份有限公司 | 一种数据处理方法和装置 |
CN112486925B (zh) * | 2020-12-28 | 2022-09-23 | 潍柴动力股份有限公司 | 一种a2l文件处理方法、装置及存储介质 |
CN112799718A (zh) * | 2021-01-15 | 2021-05-14 | 亿企赢网络科技有限公司 | 一种枚举文档的生成方法、装置、电子设备及存储介质 |
CN115827703B (zh) * | 2023-02-10 | 2023-06-30 | 美云智数科技有限公司 | 枚举数据查询方法及装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106844190A (zh) * | 2015-12-07 | 2017-06-13 | 中兴通讯股份有限公司 | 测试脚本自动生成方法及装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7016907B2 (en) * | 2001-05-29 | 2006-03-21 | Sun Microsystems, Inc. | Enumerated roles in a directory system |
US7263687B2 (en) * | 2002-09-09 | 2007-08-28 | Sun Microsystems, Inc. | Object-oriented enumerated type facility |
-
2020
- 2020-03-17 CN CN202010188650.9A patent/CN111367524B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106844190A (zh) * | 2015-12-07 | 2017-06-13 | 中兴通讯股份有限公司 | 测试脚本自动生成方法及装置 |
WO2017096990A1 (zh) * | 2015-12-07 | 2017-06-15 | 中兴通讯股份有限公司 | 测试脚本自动生成方法及装置 |
Non-Patent Citations (1)
Title |
---|
蔡承才 ; 贾佳 ; 傅从茂 ; .基于ActionScript的多层嵌套枚举判别算法研究与实现.计算机时代.2008,(07),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN111367524A (zh) | 2020-07-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111367524B (zh) | 枚举类型设计方法及装置 | |
CN109086199B (zh) | 一种自动化生成测试脚本的方法、终端和可存储介质 | |
CN110502227B (zh) | 代码补全的方法及装置、存储介质、电子设备 | |
CN110389755B (zh) | 代码处理方法及装置、电子设备和计算机可读存储介质 | |
CN107479866B (zh) | 基于重构技术实现开放终端应用数据与功能的方法 | |
CN114138244A (zh) | 模型类文件自动生成方法、装置、存储介质及电子设备 | |
CN112988601A (zh) | 测试脚本开发方法及装置 | |
CN102521008A (zh) | 程序编译装置和程序编译方法 | |
CN111124380A (zh) | 一种前端代码生成方法 | |
CN111078217A (zh) | 脑图生成方法、装置和计算机可读存储介质 | |
CN112231197A (zh) | 一种页面测试的方法、装置和存储介质 | |
JP3562435B2 (ja) | コンポーネントの自動生成装置 | |
CN111158665B (zh) | 代码生成方法及装置、电子设备和存储介质 | |
CN111190587A (zh) | 一种基于jdbc自动生成工程化前端代码的方法及系统 | |
CN115857934A (zh) | 一种根据配置变量文件生成表单页面的方法 | |
CN112948529A (zh) | 动态文本读写方法、装置、电子设备及介质 | |
JPH07182179A (ja) | オブジェクト指向データベース管理装置 | |
JP2551935B2 (ja) | 図的言語処理方式 | |
CN113986322B (zh) | 一种动态修改页面代码的方法、装置及存储介质 | |
CN112925564B (zh) | 一种源代码的冗余导入类清理方法及装置 | |
CN113918664B (zh) | 一种数据处理方法以及装置 | |
CN112052012B (zh) | 基于xslt和xsd的代码自动生成方法和设备 | |
CN115291883B (zh) | 自定义脚本解析器实现机器人的开发和运行的方法 | |
CN114003211A (zh) | 一种太阳码的生成及解析方法、装置、电子设备及介质 | |
CN117850754A (zh) | 一种低代码支持多平台的表达式处理和执行的方法及系统 |
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 |