基于MAP和接口来描述对象特定构成的程序设计方法与流程

文档序号:22756960发布日期:2020-10-31 09:54阅读:59来源:国知局
基于MAP和接口来描述对象特定构成的程序设计方法与流程

本发明涉及计算机技术领域,特别是涉及一种基于map和接口来描述对象特定构成的程序设计方法、计算机设备及存储介质。



背景技术:

随着计算机软件技术的不断发展,在计算机和互联网领域,软件越来越朝着大而复杂的方向发展。在软件开发过程中,为了提高软件代码的可复用性,提高开发效率,可将常用的各种元素封装成一组相对独立的组件,每种组件能够实现一种或多种功能。业务应用开发中经常需要采用相关的框架或者引擎对各种类型的组件对象统一进行序列化或反序列化、基于路径获取或设置属性值、数据同构传送等,而框架或者引擎都要依据对象的某种特定构成的描述才能够实现。描述对象特定构成的常规做法是采用配套的描述文件,或者直接将其映射到文件上,框架或者引擎可基于这些描述文件来理解对象的特定构成,完成相应的操作。

然而,使用描述文件,框架或者引擎运行时都需要深度运用反射技术才能实现,往往存在系统资源消耗和浪费,使得系统的处理性能较低的问题。



技术实现要素:

基于此,为了解决上述技术问题,提供一种基于map和接口来描述对象特定构成的程序设计方法、计算机设备及存储介质,可以提高系统的处理性能。

一种基于map和接口来描述对象特定构成的程序设计方法,所述方法包括:

基于map数据结构登记成员对象;所述成员对象为元素对象和组件对象;

定义动态特定子对象集合操作接口;为所述动态特定子对象集合操作接口提供组件对象集合装饰器类,所述动态特定子对象集合操作接口用于通过所述组件对象集合装饰器类获取和设置动态特定子对象;动态特定子对象集合中存储有与对象动态特定构成相关的动态特定子对象;

提供组件对象集合类,所述组件对象集合类中提供有装饰器类成员对象;所述组件对象集合类用于通过所述装饰器类成员对象,为所述组件对象提供多个动态特定子对象集合;

基于map数据结构和动态特定子对象集合操作接口,统一描述对象的特定构成。

在其中一个实施例中,所述基于map数据结构登记成员对象,包括:

基于map数据结构登记和访问属于特定构成的成员对象,且属于所述特定构成的成员对象为元素对象、组件对象;

定义元素对象基类并从所述基类派生出对应于值类型的元素类型,派生出的元素类型用于替代值类型成员声明;

将符合派生类型的元素对象、组件对象登记在所述map数据结构中。

在其中一个实施例中,所述方法还包括:

按整数索引加入和移除组件对象;

根据所述整数索引访问将所述组件对象。

在其中一个实施例中,所述方法还包括:

根据所述整数索引遍历所述动态特定子对象集合,并从所述动态特定子对象集合中获取所述动态特定子对象。

在其中一个实施例中,所述方法还包括:

当设置组件对象时,为与所述组件对象对应的动态子对象分配类名和唯一标识,并将所述类名和唯一标识作为所述组件对象的对象名。

在其中一个实施例中,所述方法还包括:

基于所述map数据结构按成员对象名称登记成员对象,并通过所述成员对象名称访问成员对象。

在其中一个实施例中,所述方法还包括:

定义所述组件对象集合类,所述组件对象集合类由组件类派生得到;

所述组件对象集合类用于支持所述动态特定子对象集合的管理,且所述组件对象集合类的实例化对象登记在所述map数据结构中。

一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:

基于map数据结构登记成员对象;所述成员对象为元素对象和组件对象;

定义动态特定子对象集合操作接口;为所述动态特定子对象集合操作接口提供组件对象集合装饰器类,所述动态特定子对象集合操作接口用于通过所述组件对象集合装饰器类获取和设置动态特定子对象;动态特定子对象集合中存储有与对象动态特定构成相关的动态特定子对象;

提供组件对象集合类,所述组件对象集合类中提供有装饰器类成员对象;所述组件对象集合类用于通过所述装饰器类成员对象,为所述组件对象提供多个动态特定子对象集合;

基于map数据结构和动态特定子对象集合操作接口,统一描述对象的特定构成。

一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:

基于map数据结构登记成员对象;所述成员对象为元素对象和组件对象;

定义动态特定子对象集合操作接口;为所述动态特定子对象集合操作接口提供组件对象集合装饰器类,所述动态特定子对象集合操作接口用于通过所述组件对象集合装饰器类获取和设置动态特定子对象;动态特定子对象集合中存储有与对象动态特定构成相关的动态特定子对象;

提供组件对象集合类,所述组件对象集合类中提供有装饰器类成员对象;所述组件对象集合类用于通过所述装饰器类成员对象,为所述组件对象提供多个动态特定子对象集合;

基于map数据结构和动态特定子对象集合操作接口,统一描述对象的特定构成。

上述基于map和接口来描述对象特定构成的程序设计方法、计算机设备及存储介质,基于map数据结构登记成员对象;成员对象为元素对象和组件对象;定义动态特定子对象集合操作接口;为动态特定子对象集合操作接口提供组件对象集合装饰器类,动态特定子对象集合操作接口用于通过组件对象集合装饰器类获取和设置动态特定子对象;动态特定子对象集合中存储有与对象动态特定构成相关的动态特定子对象;提供组件对象集合类,组件对象集合类中提供有装饰器类成员对象;组件对象集合类用于通过装饰器类成员对象,为组件对象提供多个动态特定子对象集合;基于map数据结构和动态特定子对象集合操作接口,统一描述对象的特定构成。基于map数据结构和动态特定子对象集合操作接口,可以为序列化/反序列化、基于路径获取/设置属性值、数据同构传送等应用场景统一描述对象的特定构成,无需配套的描述文件,降低了系统部署和运行维护工作复杂度,提高系统的处理性能。

附图说明

图1为一个实施例中基于map和接口来描述对象特定构成的程序设计方法的应用环境图;

图2为一个实施例中基于map和接口来描述对象特定构成的程序设计方法的流程示意图;

图3为一个实施例中计算机设备的内部结构图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

本申请实施例提供的基于map和接口来描述对象特定构成的程序设计方法,可以应用于如图1所示的应用环境中。如图1所示,该应用环境包括计算机设备110。在计算机设备110中基于map数据结构登记成员对象;成员对象为元素对象和组件对象;通过计算机设备110可以定义动态特定子对象集合操作接口;为动态特定子对象集合操作接口提供组件对象集合装饰器类,动态特定子对象集合操作接口用于通过组件对象集合装饰器类获取和设置动态特定子对象;动态特定子对象集合中存储有与对象动态特定构成相关的动态特定子对象;通过计算机设备110可以提供组件对象集合类,组件对象集合类中提供有装饰器类成员对象;组件对象集合类用于通过装饰器类成员对象,为组件对象提供多个动态特定子对象集合;基于map数据结构和动态特定子对象集合操作接口,统一描述对象的特定构成。其中,计算机设备110可以但不限于是各种个人计算机、笔记本电脑、平板电脑等。

在一个实施例中,如图2所示,提供了一种基于map和接口来描述对象特定构成的程序设计方法,包括以下步骤:

步骤202,基于map数据结构登记成员对象;成员对象为元素对象和组件对象。

map数据结构又称为查找表,用于存储所谓“key-value"映射对;key可以看成是value的索引,作为key的对象在集合中不可重复。在本实施例中,计算机设备可以基于map数据结构登记成员对象,其中,可登记的成员对象可以是元素对象和组件对象。

步骤204,定义动态特定子对象集合操作接口;为动态特定子对象集合操作接口提供组件对象集合装饰器类,动态特定子对象集合操作接口用于通过组件对象集合装饰器类获取和设置动态特定子对象;动态特定子对象集合中存储有与对象动态特定构成相关的动态特定子对象。

动态特定子对象集合操作接口可以是igetunnamedcomponent接口。在本实施例中,通过计算机设备可以定义动态特定子对象集合操作接口并提供接口实现,具体的,通过计算机设备可以为动态特定子对象集合操作接口提供组件对象集合装饰器类。通过动态特定子对象集合操作接口以及组件对象集合装饰器类可以获取和设置动态特定子对象集合中的动态特定子对象。其中,动态特定子对象集合中存储有与对象动态特定构成相关的动态特定子对象。某些成员对象有描述动态特定构成的需求,动态特定子对象集合可以有多种结构类型,举例说明,有容器、数组表、哈希表、双向链表等,计算机设备可以通过动态特定子对象集合操作接口获取和设置动态特定子对象集合中的动态特定子对象。

其中,特定构成可以用于表示在序列化/反序列化、基于路径获取/设置属性值、数据同构传送等场景的应用中,需要对象向应用场景提供的对象结构信息。

步骤206,提供组件对象集合类,组件对象集合类中提供有装饰器类成员对象;组件对象集合类用于通过装饰器类成员对象,为组件对象提供多个动态特定子对象集合。

步骤208,基于map数据结构和动态特定子对象集合操作接口,统一描述对象的特定构成。

在本实施例中,基于map数据结构登记成员对象;成员对象为元素对象和组件对象;定义动态特定子对象集合操作接口;为动态特定子对象集合操作接口提供组件对象集合装饰器类,动态特定子对象集合操作接口用于通过组件对象集合装饰器类获取和设置动态特定子对象;动态特定子对象集合中存储有与对象动态特定构成相关的动态特定子对象;提供组件对象集合类,组件对象集合类中提供有装饰器类成员对象;组件对象集合类用于通过装饰器类成员对象,为组件对象提供多个动态特定子对象集合;基于map数据结构和动态特定子对象集合操作接口,统一描述对象的特定构成。基于map数据结构和动态特定子对象集合操作接口,可以为序列化/反序列化、基于路径获取/设置属性值、数据同构传送等应用场景统一描述对象的特定构成,无需配套的描述文件,降低了系统部署和运行维护工作复杂度,提高系统的处理性能。

在一个实施例中,提供的一种基于map和接口来描述对象特定构成的程序设计方法还可以包括基于map数据结构登记成员对象的过程,具体包括:基于map数据结构登记和访问属于特定构成的成员对象,且属于特定构成的成员对象为元素对象、组件对象;定义元素对象基类并从基类派生出对应于值类型的元素类型,派生出的元素类型用于替代值类型成员声明;将符合派生类型的元素对象、组件对象登记在map数据结构中。

在本实施例中,成员对象中可登记的成员对象的类型是有要求的,可登记的成员对象必须是组件对象,而软件应用往往需要登记一些基本类型成员对象,但在所有面向对象语言中,基本类型几乎都是所谓的值类型,而值类型对象是无法直接登记到hashmap中的。为此,组件对象模型提供了元素对象,用以替代语言提供的值类型,来声明和实例化需要登记的基本类型的成员对象。其中,组件对象模型提供的常用的元素对象有:integer、boolean、string、float、decimal、datetime等。

在一个实施例中,提供的一种基于map和接口来描述对象特定构成的程序设计方法还可以包括:按整数索引加入和移除组件对象;根据整数索引访问将组件对象。

在一个实施例中,提供的一种基于map和接口来描述对象特定构成的程序设计方法还可以包括:根据整数索引遍历动态特定子对象集合,并从动态特定子对象集合中获取动态特定子对象。

在使用动态接口即igetunnamedcomponent接口设置元素对象的动态特定子对象集合时,igetunnamedcomponent接口可以定义为:

interfaceigetunnamedcomponent{

componentgetunnamedcomponent(booleanisloading,intindex,refstringname);

}

其中,isloading为true;index表示新加入的子对象的整数索引,对于哈希表、双向链表这类集合而言此参数可忽略;name表示子对象的类名和集合内的唯一标识,格式为:类名+”-”+唯一标识,例如,staffer-00105029,customer-20200202,staffer,等等。即,要依据类名实例化子对象并返回新实例化的子对象,子对象的类型可以是不同的;每个子对象都可以有一个唯一标识,如果集合中已经存在指定的唯一标识,则不实例化新的子对象,而是直接返回已经存在的具有相同标识的子对象。

在一个实施例中,提供的一种基于map和接口来描述对象特定构成的程序设计方法还可以包括:当设置组件对象时,为与组件对象对应的动态子对象分配类名和唯一标识,并将类名和唯一标识作为组件对象的对象名。

在使用动态接口即igetunnamedcomponent接口获取元素对象的动态特定子对象集合时,igetunnamedcomponent接口可以定义为:

interfaceigetunnamedcomponent{

componentgetunnamedcomponent(booleanisloading,intindex,refstringname);

}

其中,isloading为false;index表示要获取的子对象的整数索引。考虑到有关框架或者引擎只会使用igetunnamedcomponent接口遍历获取所有动态特定子对象,因此,对于哈希表、双向链表这类集合而言,可以在index参数为0时,内部先建立一个arraylist,保存所有子对象引用,然后,即可基于这个arraylist和index参数返回相应的子对象;name用以输出子对象的类名和唯一标识,格式也是类名+”-”+唯一标识;如果index对应的子对象不存在则返回null。

在一个实施例中,提供的一种基于map和接口来描述对象特定构成的程序设计方法还可以包括:基于map数据结构按成员对象名称登记成员对象,并通过成员对象名称访问成员对象。

在一个实施例中,提供的一种基于map和接口来描述对象特定构成的程序设计方法还可以包括:定义组件对象集合类,组件对象集合类由组件类派生得到;组件对象集合类用于支持动态特定子对象集合的管理,且组件对象集合类的实例化对象登记在map数据结构中。

应该理解的是,虽然上述各个流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,上述各个流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图3所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。

本领域技术人员可以理解,图3中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:

基于map数据结构登记成员对象;成员对象为元素对象和组件对象;

定义动态特定子对象集合操作接口;为动态特定子对象集合操作接口提供组件对象集合装饰器类,动态特定子对象集合操作接口用于通过组件对象集合装饰器类获取和设置动态特定子对象;动态特定子对象集合中存储有与对象动态特定构成相关的动态特定子对象;

提供组件对象集合类,组件对象集合类中提供有装饰器类成员对象;组件对象集合类用于通过装饰器类成员对象,为组件对象提供多个动态特定子对象集合;

基于map数据结构和动态特定子对象集合操作接口,统一描述对象的特定构成。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:基于map数据结构登记和访问属于特定构成的成员对象,且属于特定构成的成员对象为元素对象、组件对象;定义元素对象基类并从基类派生出对应于值类型的元素类型,派生出的元素类型用于替代值类型成员声明;将符合派生类型的元素对象、组件对象登记在map数据结构中。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:按整数索引加入和移除组件对象;根据整数索引访问将组件对象。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:根据整数索引遍历动态特定子对象集合,并从动态特定子对象集合中获取动态特定子对象。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:当设置组件对象时,为与组件对象对应的动态子对象分配类名和唯一标识,并将类名和唯一标识作为组件对象的对象名。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:基于map数据结构按成员对象名称登记成员对象,并通过成员对象名称访问成员对象。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:定义组件对象集合类,组件对象集合类由组件类派生得到;组件对象集合类用于支持动态特定子对象集合的管理,且组件对象集合类的实例化对象登记在map数据结构中。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:

基于map数据结构登记成员对象;成员对象为元素对象和组件对象;

定义动态特定子对象集合操作接口;为动态特定子对象集合操作接口提供组件对象集合装饰器类,动态特定子对象集合操作接口用于通过组件对象集合装饰器类获取和设置动态特定子对象;动态特定子对象集合中存储有与对象动态特定构成相关的动态特定子对象;

提供组件对象集合类,组件对象集合类中提供有装饰器类成员对象;组件对象集合类用于通过装饰器类成员对象,为组件对象提供多个动态特定子对象集合;

基于map数据结构和动态特定子对象集合操作接口,统一描述对象的特定构成。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:基于map数据结构登记和访问属于特定构成的成员对象,且属于特定构成的成员对象为元素对象、组件对象;定义元素对象基类并从基类派生出对应于值类型的元素类型,派生出的元素类型用于替代值类型成员声明;将符合派生类型的元素对象、组件对象登记在map数据结构中。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:按整数索引加入和移除组件对象;根据整数索引访问将组件对象。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:根据整数索引遍历动态特定子对象集合,并从动态特定子对象集合中获取动态特定子对象。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:当设置组件对象时,为与组件对象对应的动态子对象分配类名和唯一标识,并将类名和唯一标识作为组件对象的对象名。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:基于map数据结构按成员对象名称登记成员对象,并通过成员对象名称访问成员对象。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:定义组件对象集合类,组件对象集合类由组件类派生得到;组件对象集合类用于支持动态特定子对象集合的管理,且组件对象集合类的实例化对象登记在map数据结构中。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

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