CN110188071B - 数据处理方法、装置、电子设备和计算机可读介质 - Google Patents
数据处理方法、装置、电子设备和计算机可读介质 Download PDFInfo
- Publication number
- CN110188071B CN110188071B CN201910319042.4A CN201910319042A CN110188071B CN 110188071 B CN110188071 B CN 110188071B CN 201910319042 A CN201910319042 A CN 201910319042A CN 110188071 B CN110188071 B CN 110188071B
- Authority
- CN
- China
- Prior art keywords
- persistence
- database
- plug
- file
- interface
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
-
- 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/31—Programming languages or programming paradigms
- G06F8/315—Object-oriented languages
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Computing Systems (AREA)
- Human Computer Interaction (AREA)
- Stored Programmes (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例公开了数据处理方法、装置、电子设备和计算机可读介质。该方法的实施例包括:响应于接收到针对目标业务类的数据持久化指令,利用反射机制检测该目标业务类是否配置有数据库持久化插件和文件持久化插件;调用检测出的插件中的接口,进行数据持久化。该实施方式降低了iOS应用开发的代码复杂度。
Description
技术领域
本申请实施例涉及计算机技术领域,具体涉及数据处理方法、装置、电子设备和计算机可读介质。
背景技术
持久化(Persistence)是将程序数据在持久状态和瞬时状态间转换的机制。例如,通过持久化,可以将瞬时数据(比如内存中的数据)持久化为持久数据(比如持久化至数据库中,能够长久保存)。
对于运行于iOS***(一种移动操作***)的应用(即iOS应用),将该应用中的瞬时数据转换为持久数据,通常可以通过以下两种方式实现:将数据存储至数据库(利用iOS应用内置的数据库)中、将数据存储至文件(例如UserDefaults文件)中。通常,针对不同的开发需求,会选择不同的数据持久化方式。
现有的方式,通常是利用宏来实现代码分支,利用不同分支的代码实现不同方式的数据持久化。然而,对于不同开发需求(例如在将iOS应用作为基线应用时,需要将数据持久化至数据库,在将iOS应用作为SDK(Software Development Kit,软件开发工具包)输出时,需要使数据持久化至文件),这种方式需要进行代码裁剪,从而选取相应分支的代码进行数据持久化。将代码裁剪后,降低了源码的可读性,导致iOS应用的开发难度较高。
发明内容
本申请实施例提出了数据处理方法、装置、电子设备和计算机可读介质,以解决现有技术中在iOS***上进行数据持久化时,通过代码裁剪选取分支代码的方式导致iOS应用的开发难度较高技术问题。
第一方面,本申请实施例提供了一种数据处理方法,应用于支持iOS应用的开发的电子设备,iOS应用包括至少一个业务类,该方法包括:响应于接收到针对目标业务类的数据持久化指令,利用反射机制检测目标业务类是否配置有数据库持久化插件和文件持久化插件,其中,数据库持久化插件中定义有第一接口,第一接口封装有将数据持久化至数据库的第一方法,文件持久化插件中定义有第二接口,第二接口封装有将数据持久化至文件的第二方法;基于检测结果,确定所述目标业务类所配置的插件,调用所述插件中的接口,进行数据持久化。
在一些实施例中,基于检测结果,确定所述目标业务类所配置的插件,调用所述插件中的接口,进行数据持久化,包括:响应于检测出目标业务类配置有数据库持久化插件且未配置有文件持久化插件,调用第一接口进行数据持久化;或者响应于检测出目标业务类配置有文件持久化插件且未配置有数据库持久化插件,调用第二接口进行数据持久化;或者响应于检测出目标业务类配置有数据库持久化插件和文件持久化插件,分别调用第一接口和第二接口进行数据持久化。
在一些实施例中,在响应于接收到针对目标业务类的数据持久化指令之前,该方法还包括:分别为各业务类定义数据库持久化操作协议和文件持久化操作协议,其中,数据库持久化操作协议包括第一方法的声明,文件持久化操作协议包括第二方法的声明;创建数据库持久化插件和文件持久化插件,在数据库持久化插件中定义第一接口,在文件持久化插件中定义第二接口,其中,第一接口封装有第一方法,第二接口封装有第二方法;为各业务类分别创建数据库持久化分类和/或文件持久化分类,其中,数据库持久化分类用于为业务类添加第一方法,文件持久化分类用于为业务类添加第二方法。
在一些实施例中,利用反射机制检测目标业务类是否配置有数据库持久化插件和文件持久化插件,包括:检测目标业务类中是否包含数据库持久化分类和文件持久化分类;响应于检测出包含数据库持久化分类,确定目标业务类配置有数据库持久化插件,以及,响应于检测出包含文件持久化分类,确定配置有文件持久化插件。
在一些实施例中,数据库持久化操作协议还包括从数据库读取数据的第三方法的声明,文件持久化操作协议还包括从文件读取数据的第四方法的声明;以及在创建数据库持久化插件和文件持久化插件之后,该方法还包括:在数据库持久化插件中定义第三接口,在文件持久化插件中定义第四接口,其中,第三接口封装有第三方法,第四接口封装有第四方法;为各业务类分别创建数据库读取分类和/或文件读取分类,其中,数据库读取分类用于为业务类添加第三方法,文件读取分类用于为业务类添加第四方法。
在一些实施例中,该方法还包括:响应于接收到针对目标业务类的数据读取指令,检测目标业务类中是否包含数据库读取分类;响应于检测出目标业务类中包含数据库读取分类,调用数据库持久化插件中的第三接口,读取数据库中的数据。
在一些实施例中,在检测目标业务类中是否包含数据库读取分类之后,该方法还包括:响应于检测出目标业务类中不包含数据库读取分类,判断目标业务类中是否包含文件读取分类;响应于检测出目标业务类中包含文件读取分类,调用文件持久化插件中的第四接口,读取数据库中的数据。
第二方面,本申请实施例提供了一种数据处理装置,该装置包括:应用于支持iOS应用的开发的电子设备,iOS应用包括至少一个业务类,装置包括:检测单元,被配置成响应于接收到针对目标业务类的数据持久化指令,利用反射机制检测目标业务类是否配置有数据库持久化插件和文件持久化插件,其中,数据库持久化插件中定义有第一接口,第一接口封装有将数据持久化至数据库的第一方法,文件持久化插件中定义有第二接口,第二接口封装有将数据持久化至文件的第二方法;基于检测结果,确定所述目标业务类所配置的插件,调用所述插件中的接口,进行数据持久化。
在一些实施例中,持久化单元,包括:第一持久化模块,被配置成响应于检测出目标业务类配置有数据库持久化插件且未配置有文件持久化插件,调用第一接口进行数据持久化;或者第二持久化模块,被配置成响应于检测出目标业务类配置有文件持久化插件且未配置有数据库持久化插件,调用第二接口进行数据持久化;或者第三持久化模块,被配置成响应于检测出目标业务类配置有数据库持久化插件和文件持久化插件,分别调用第一接口和第二接口进行数据持久化。
在一些实施例中,该装置还包括:协议定义单元,被配置成分别为各业务类定义数据库持久化操作协议和文件持久化操作协议,其中,数据库持久化操作协议包括第一方法的声明,文件持久化操作协议包括第二方法的声明;插件创建单元,被配置成创建数据库持久化插件和文件持久化插件,在数据库持久化插件中定义第一接口,在文件持久化插件中定义第二接口,其中,第一接口封装有第一方法,第二接口封装有第二方法;第一分类创建单元,被配置成为各业务类分别创建数据库持久化分类和/或文件持久化分类,其中,数据库持久化分类用于为业务类添加第一方法,文件持久化分类用于为业务类添加第二方法。
在一些实施例中,检测单元,包括:第一确定模块,被配置成检测目标业务类中是否包含数据库持久化分类和文件持久化分类;第二确定模块,被配置成响应于检测出包含数据库持久化分类,确定目标业务类配置有数据库持久化插件,以及,响应于检测出包含文件持久化分类,确定配置有文件持久化插件。
在一些实施例中,数据库持久化操作协议还包括从数据库读取数据的第三方法的声明,文件持久化操作协议还包括从文件读取数据的第四方法的声明;以及该装置还包括:接口定义单元,被配置成在数据库持久化插件中定义第三接口,在文件持久化插件中定义第四接口,其中,第三接口封装有第三方法,第四接口封装有第四方法;第二分类创建单元,被配置成为各业务类分别创建数据库读取分类和/或文件读取分类,其中,数据库读取分类用于为业务类添加第三方法,文件读取分类用于为业务类添加第四方法。
在一些实施例中,该装置还包括:第一确定单元,被配置成响应于接收到针对目标业务类的数据读取指令,检测目标业务类中是否包含数据库读取分类;第一读取单元,被配置成响应于检测出目标业务类中包含数据库读取分类,调用数据库持久化插件中的第三接口,读取数据库中的数据。
在一些实施例中,该装置还包括:第二确定单元,被配置成响应于检测出目标业务类中不包含数据库读取分类,判断目标业务类中是否包含文件读取分类;第二读取单元,被配置成响应于检测出目标业务类中包含文件读取分类,调用文件持久化插件中的第四接口,读取数据库中的数据。
第三方面,本申请实施例提供了一种电子设备,包括:一个或多个处理器;存储装置,其上存储有一个或多个程序,当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现如上述第一方面中任一实施例的方法。
第四方面,本申请实施例提供了一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现如上述第一方面中任一实施例的方法。
本申请实施例提供的数据处理方法、装置、电子设备和计算机可读介质,在接收到针对目标业务类的数据持久化指令后,利用反射机制检测目标业务类是否配置有数据库持久化插件和文件持久化插件,而后调用检测出的插件中的接口,进行数据持久化。由于不同的持久化插件定义了通过不同持久化方法的接口,因而,针对不同的持久化需求,可以通过检测所配置持久化插件,确定持久化方式。由于在iOS应用开发过程中,针对不同的开发需求,不需要对源代码进行代码裁剪,直接进行插件配置即可选取持久化方式,因而,降低了iOS应用的开发难度。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1是根据本申请的数据处理方法的一个实施例的流程图;
图2是根据本申请的数据处理方法的又一个实施例的流程图;
图3是根据本申请的数据处理装置的一个实施例的结构示意图;
图4是适于用来实现本申请实施例的电子设备的计算机***的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
请参考图1,其示出了根据本申请的数据处理方法的一个实施例的流程100。上述数据处理方法可以应用于电子设备。上述电子设备支持iOS应用的开发。上述iOS应用可以是运行于iOS操作***的应用。实践中,上述电子设备中可以安装有用于进行iOS应用开发的集成开发工具(例如Xcode)。技术人员可以利用该集成开发工具进行iOS应用的开发。
上述iOS应用可以包括至少一个业务类。实践中,在iOS应用的开发过程中,可以按照功能进行业务类的创建和划分。不同的功能(例如收藏功能、统计数据功能)可以对应不同的业务类。
实践中,通常利用Objective-C(扩充C的面向对象编程语言,OC)进行iOS应用的开发。Objective-C遵循运行时(Runtime)机制,并具有分类(category)特性。
上述运行时机制,是指将数据类型的确定操作由编译时推迟到了运行时进行。具体地,在运行状态中,通过运行时机制,可以动态的创建类,动态添加、修改该类的属性和方法;也可以遍历一个类中所有的成员变量、属性、以及所有方法;还可以进行消息传递、和转发。实践中,Runtime是使用C语言和汇编语言编写的动态共享库。该动态共享库中包含一系列函数和数据结构组成的公共接口。在iOS应用开发过程中所编写的Objective-C代码,在运行状态中,最终会转换成Runtime的C语言代码。Objective-C需要Runtime来创建类和对象,进行消息发送和转发。
上述category特性是Objective-C的一种语言特性,category的主要作用是为已经存在的类添加方法。通常,通过category特性在某个类中创建分类,即可实现在该类中添加该分类指示的方法。
上述数据处理方法,可以包括以下步骤:
步骤101,响应于接收到针对目标业务类的数据持久化指令,利用反射机制检测上 述目标业务类是否配置有数据库持久化插件和文件持久化插件。
在本实施例中,数据处理方法的执行主体(例如上述支持iOS应用的开发的电子设备)响应于接收到针对目标业务类的数据持久化指令,可以利用反射机制检测上述目标业务类是否配置有数据库持久化插件和文件持久化插件。其中,上述目标业务类可以是上述iOS应用的业务类中的任一业务类。上述数据持久化指令可以用于指示将数据进行持久化。作为示例,上述目标业务类为统计业务类,当需要将当前待存储的统计数据进行持久化,则可以触发统计业务类的数据持久化指令。上述数据库持久化插件和文件持久化插件均可以是静态库文件。
上述数据库持久化插件中可以定义有第一接口。上述第一接口可以封装有将数据持久化至数据库的第一方法。上述文件持久化插件中可以定义有第二接口。上述第二接口可以封装有将数据持久化至文件的第二方法。
实践中,反射机制是一种在运行时(runtime)动态获取以及动态调用信息(包括类的属性和方法、对象的方法等)的方法。在运行状态下,对于任意一个类,利用反射机制,可以获取这个类的属性和方法;对于任意一个对象,利用反射机制,可以调用这个对象的属性和方法。由此,利用反射机制,可以确定上述目标业务类是否支持上述第一方法。若支持,即可确定上述目标业务类被配置有数据库持久化插件,若不支持,即可确定上述目标业务类未配置有数据库持久化插件。同样地,利用反射机制,可以确定上述目标业务类是否支持上述第二方法。若支持,即可确定上述目标业务类被配置有文件持久化插件,若不支持,即可确定上述目标业务类未配置有文件持久化插件。
在本实施例的一些可选的实现方式中,步骤101之前,还可以进行如下操作,以实现数据持久化方式的插件化。
首先,分别为iOS应用的各业务类定义数据库持久化操作协议和文件持久化操作 协议。实践中,协议通常用于声明方法。某个类只要遵守了某个协议,就相当于拥有了该协议所有的方法声明。此处,上述数据库持久化操作协议包括上述第一方法的声明,上述文件 持久化操作协议包括上述第二方法的声明。
之后,创建数据库持久化插件和文件持久化插件,并在上述数据库持久化插件中 定义第一接口,以及,在上述文件持久化插件中定义第二接口。其中,上述第一接口封装有上述第一方法,上述第二接口封装有上述第二方法。
最后,可以为上述各业务类分别创建数据库持久化分类和/或文件持久化分类。其 中,上述数据库持久化分类用于为业务类添加上述第一方法,上述文件持久化分类用于为 业务类添加上述第二方法。实践中,Objective-C语言的category特性用于给已经存在的类添加方法。通过category特性在某个类中创建分类,即可实现在该类中添加该分类指示的方法。由此,可以利用category特性,对某个业务类创建数据库持久化分类,从而为该业务类添加上述第一方法。以及,可以利用category特性,对某个业务类创建文件持久化分类,从而为该业务类添加上述第二方法。
通过为各业务类定义数据库持久化操作协议,以及为上述各业务类分别创建数据库持久化分类和/或文件持久化分类,从而能够为各业务类添加用于进行数据持久化的方法。通过创建数据库持久化插件和文件持久化插件,并在插件中定义封装有相应方法的接口,实现了数据持久化方式的插件化。从而,避免了通过代码裁剪的方式对持久化方式进行选取,降低了iOS应用的开发难度。
此外,针对同一个iOS应用(即同一套代码),这种方式可以针对不同的开发需求灵活配置不同的持久化插件。例如,当iOS应用作为基线应用时,可以配置数据库持久化插件,使数据持久化至数据库。当iOS应用作为SDK(Software Development Kit,软件开发工具包)输出时,可以配置文件持久化插件,使数据持久化至文件中。此过程不需要更改iOS应用的代码,降低了应用管理的复杂度。
此外,集成方可以针对需要自由配置持久化插件,避免了由于持久化方式不同所造成的源码冲突。同时,将持久化操作的逻辑部署在插件中,通过配置插件来设定各个业务类的数据持久化方式,不需要为每个业务类分别编写持久化代码,从而能够减小SDK包的大小。
在本实施例的一些可选的实现方式中,上述利用反射机制检测上述目标业务类是否配置有数据库持久化插件和文件持久化插件,可以按照如下步骤执行:首先,可以检测上述目标业务类中是否包含上述数据库持久化分类和上述文件持久化分类。而后,响应于检测出包含上述数据库持久化分类,确定上述目标业务类配置有上述数据库持久化插件,以及,响应于检测出包含上述文件持久化分类,确定配置有上述文件持久化插件。
步骤102,基于检测结果,确定目标业务类所配置的插件,调用该插件中的接口,进 行数据持久化。
在本实施例中,由于各插件中分别定义有用于将数据持久化的接口,因此,上述执行主体对于可以基于检测结果,确定出所述目标业务类所配置的插件。需要说明的是,由于仅对所述目标业务类是否配置有数据库持久化插件和文件持久化插件进行检测,因此,此处基于检测结果所确定出的插件,为数据库持久化插件和/或文件持久化插件。而后,可以调用该插件中的接口,进行数据持久化。
具体地,当确定目标业务类被配置有数据库持久化插件后,可以调用该数据库持久化插件中的第一接口。由于上述第一接口中封装有将数据持久化至数据库的第一方法,因此,可以通过调用该数据库持久化插件中的第一接口执行该第一方法,将数据持久化至数据库中。
当确定目标业务类被配置有文件持久化插件后,可以调用该文件持久化插件中的第二接口。由于上述第二接口中封装有将数据持久化至文件的第二方法,因此,可以通过调用该文件持久化插件中的第二接口执行该第二方法,将数据持久化至文件中。
在本实施例的一些可选的实现方式中,可以针对不同的检测结果调用不同的接口进行数据持久化。具体地,响应于检测出上述目标业务类配置有上述数据库持久化插件且 未配置有上述文件持久化插件,上述执行主体可以调用上述第一接口进行数据持久化。响 应于检测出上述目标业务类配置有上述文件持久化插件且未配置有上述数据库持久化插 件,上述执行主体可以调用上述第二接口进行数据持久化。响应于检测出上述目标业务类 配置有上述数据库持久化插件和上述文件持久化插件,上述执行主体可以分别调用上述第 一接口和上述第二接口进行数据持久化。
本申请的上述实施例提供的方法,在接收到针对目标业务类的数据持久化指令后,利用反射机制检测上述目标业务类是否配置有数据库持久化插件和文件持久化插件,而后调用检测出的插件中的接口,进行数据持久化。由于不同的持久化插件定义了通过不同持久化方法的接口,因而,针对不同的持久化需求,可以通过检测所配置持久化插件,确定持久化方式。由于在iOS应用开发过程中,针对不同的开发需求,不需要对源代码进行代码裁剪,直接进行插件配置即可选取持久化方式,因而,降低了iOS应用的开发难度。
进一步参考图2,其示出了数据处理方法的又一个实施例的流程200。上述数据处理方法可以应用于电子设备。上述电子设备支持iOS应用的开发。上述iOS应用可以包括至少一个业务类。该数据处理方法的流程200,包括以下步骤:
步骤201,分别为各业务类定义数据库持久化操作协议和文件持久化操作协议。
在本实施例中,可以分别为各业务类定义数据库持久化操作协议和文件持久化操作协议。实践中,协议可以用于声明方法。某个类只要遵守了协议,就相当于拥有了该协议所有的方法声明。此处,上述数据库持久化操作协议包括第一方法的声明,上述文件持久化操作协议包括第二方法的声明。上述第一方法为将数据持久化至数据库的方法。上述第二方法为将数据持久化至文件的方法。
需要说明的是,上述数据库持久化操作协议还可以包括从数据库读取数据的第三方法的声明。上述文件持久化操作协议还可以包括从文件读取数据的第四方法的声明。
步骤202,创建数据库持久化插件和文件持久化插件,在数据库持久化插件中定义 第一接口,在文件持久化插件中定义第二接口。
在本实施例中,可以创建数据库持久化插件和文件持久化插件,在数据库持久化插件中定义第一接口,在文件持久化插件中定义第二接口。其中,上述第一接口封装有上述第一方法,上述第二接口封装有上述第二方法。
需要说明的是,上述执行主体中还可以安装有适用于iOS操作***的第三方库管理工具(例如CocoaPods)。实践中,该第三方库管理工具可以管理利用上述集成开发工具所创建的工程中的依赖库(即所依赖的库文件)。由于上述数据库持久化插件和文件持久化插件均可以是静态库文件,因而,可以将上述数据库持久化插件和文件持久化插件存放至上述第三方库管理工具进行管理。实践中,可以存放在上述第三方库管理工具中的Podfile文件(用于定义项目所需的第三方库的文件)中。
若上述目标业务类同时支持将数据持久化至数据库的方式和将数据持久化至文件的方式,则上述Podfile文件中可以记录有目标业务类的名称、数据库持久化插件的名称以及文件持久化插件的名称。
若上述目标业务类只支持将数据持久化至数据库的方式,则上述Podfile文件中可以记录有目标业务类的名称和数据库持久化插件的名称。
若上述目标业务类只支持将数据持久化至文件的方式,则上述Podfile文件中可以记录有目标业务类的名称和文件持久化插件的名称。
步骤203,在数据库持久化插件中定义第三接口,在文件持久化插件中定义第四接 口。
在本实施例中,可以在数据库持久化插件中定义第三接口,在文件持久化插件中定义第四接口。其中,上述第三接口可以封装有上述第三方法,上述第四接口可以封装有上述第四方法。通过在插件中定义封装有相应方法的接口,实现了数据读取方式的插件化。
步骤204,为各业务类分别创建数据库持久化分类和/或文件持久化分类。
在本实施例中,可以为上述各业务类分别创建数据库持久化分类和/或文件持久化分类。其中,上述数据库持久化分类用于为业务类添加上述第一方法,上述文件持久化分 类用于为业务类添加上述第二方法。
实践中,Objective-C语言的category特性用于给已经存在的类添加方法。通过category特性在某个类中创建分类,即可实现在该类中添加该分类指示的方法。由此,可以利用category特性,对某个业务类创建数据库持久化分类,从而为该业务类添加上述第一方法。以及,可以利用category特性,对某个业务类创建文件持久化分类,从而为该业务类添加上述第二方法。
通过为各业务类定义数据库持久化操作协议,以及为上述各业务类分别创建数据库持久化分类和/或文件持久化分类,从而能够为各业务类添加用于进行数据持久化的方法。通过创建数据库持久化插件和文件持久化插件,并在插件中定义封装有相应方法的接口,实现了数据持久化方式的插件化。从而,避免了通过代码裁剪的方式对持久化方式进行选取,降低了iOS应用的开发难度。
此外,针对同一个iOS应用(即同一套代码),将数据持久化方式进行插件化,可以针对不同的开发需求灵活配置不同的持久化方式。例如,当iOS应用作为基线应用时,可以配置数据库持久化插件,使数据持久化至数据库。当iOS应用作为SDK输出时,可以配置文件持久化插件,使数据持久化至文件中。此过程不需要更改iOS应用的代码,降低了应用管理的复杂度。此外,集成方可以针对需要自由配置持久化插件,避免了由于持久化方式不同所造成的源码冲突。同时,将持久化操作的逻辑部署在插件中,通过配置插件来设定各个业务类的数据持久化方式,不需要为每个业务类分别编写持久化代码,从而能够减小SDK包的大小。
步骤205,为各业务类分别创建数据库读取分类和/或文件读取分类。
在本实施例中,还可以为上述各业务类分别创建数据库读取分类和/或文件读取分类。其中,上述数据库读取分类用于为业务类添加上述第三方法,上述文件读取分类用于为业务类添加上述第四方法。
步骤206,响应于接收到针对目标业务类的数据持久化指令,利用反射机制检测上述目标业务类是否配置有数据库持久化插件和文件持久化插件。
在本实施例中,响应于接收到针对目标业务类的数据持久化指令,数据处理方法的执行主体可以利用反射机制检测上述目标业务类是否配置有数据库持久化插件和文件持久化插件。其中,上述目标业务类可以是上述iOS应用的业务类中的任一业务类。实践中,反射机制是一种在运行时(runtime)动态获取以及动态调用信息(包括类的属性和方法、对象的方法等)的方法。在运行状态下,对于任意一个类,利用反射机制,可以获取这个类的属性和方法;对于任意一个对象,利用反射机制,可以调用这个对象的属性和方法。
由此,利用反射机制,可以确定上述目标业务类是否支持上述第一方法(即上述目标业务类中是否包含数据库持久化分类)。若支持,即可确定上述目标业务类被配置有数据库持久化插件,若不支持,即可确定上述目标业务类未配置有数据库持久化插件。同样地,可以确定上述目标业务类是否支持上述第二方法(即上述目标业务类中是否包含文件持久化分类)。若支持,即可确定上述目标业务类被配置有文件持久化插件,若不支持,即可确定上述目标业务类未配置有文件持久化插件。
步骤207,基于检测结果,确定目标业务类所配置的插件,调用该插件中的接口,进行数据持久化。
在本实施例中,可以针对不同的检测结果调用不同的接口进行数据持久化。
具体地,响应于检测出上述目标业务类配置有上述数据库持久化插件且未配置有上述文件持久化插件,上述执行主体可以调用上述第一接口进行数据持久化。
响应于检测出上述目标业务类配置有上述文件持久化插件且未配置有上述数据库持久化插件,上述执行主体可以调用上述第二接口进行数据持久化。
响应于检测出上述目标业务类配置有上述数据库持久化插件和上述文件持久化插件,上述执行主体可以分别调用上述第一接口和上述第二接口进行数据持久化。
步骤208,响应于接收到针对目标业务类的数据读取指令,检测目标业务类中是否包含数据库读取分类。
在本实施例中,响应于接收到针对上述目标业务类的数据读取指令,上述执行主体可以检测上述目标业务类中是否包含上述数据库读取分类。需要说明的是,检测是否包含数据库读取分类的操作与步骤201中确定是否包含数据库持久化分类的操作基本相同,此处不再赘述。
步骤209,响应于检测出目标业务类中包含数据库读取分类,调用数据库持久化插件中的第三接口,读取数据库中的数据。
步骤210,响应于检测出目标业务类中不包含数据库读取分类,判断目标业务类中是否包含文件读取分类。
在本实施例中,响应于确定上述目标业务类中不包含上述数据库读取分类,上述执行主体可以判断上述目标业务类中是否包含上述文件读取分类。需要说明的是,确定是否包含文件读取分类的操作与步骤201中确定是否包含数据库持久化分类的操作基本相同,此处不再赘述。
步骤211,响应于检测出目标业务类中包含文件读取分类,调用文件持久化插件中的第四接口,读取数据库中的数据。
从图2中可以看出,与图1对应的实施例相比,本实施例中的数据处理方法的流程200涉及了预先对数据持久化方式进行插件化的步骤以及读取数据的步骤。通过创建数据库持久化插件和文件持久化插件,并在插件中定义封装有相应方法的接口,实现了数据持久化方式的插件化。从而,避免了通过代码裁剪的方式对持久化方式进行选取,降低了iOS应用的开发难度。另外,针对同一个iOS应用,将数据持久化方式进行插件化,可以针对不同的开发需求灵活配置不同的持久化方式,降低了应用管理的复杂度。此外,集成方可以针对需要自由配置持久化插件,避免了由于持久化方式不同所造成的源码冲突。同时,将持久化操作的逻辑部署在插件中,通过配置插件来设定各个业务类的数据持久化方式,不需要为每个业务类分别编写持久化代码,能够减小SDK包的大小。
进一步参考图3,作为对上述各图所示方法的实现,本申请提供了一种数据处理装置的一个实施例,该装置实施例与图1所示的方法实施例相对应,该装置具体可以应用于电子设备中。上述电子设备支持iOS应用的开发。上述iOS应用可以包括至少一个业务类。
如图3所示,本实施例所述的数据处理装置300包括:检测单元301,被配置成响应于接收到针对目标业务类的数据持久化指令,利用反射机制检测上述目标业务类是否配置有数据库持久化插件和文件持久化插件,其中,上述数据库持久化插件中定义有第一接口,上述第一接口封装有将数据持久化至数据库的第一方法,上述文件持久化插件中定义有第二接口,上述第二接口封装有将数据持久化至文件的第二方法;持久化单元302,被配置成调用检测出的插件中的接口,进行数据持久化。
在本实施例的一些可选的实现方式中,上述持久化单元,包括:第一持久化模块,被配置成响应于检测出上述目标业务类配置有上述数据库持久化插件且未配置有上述文件持久化插件,调用上述第一接口进行数据持久化;或者第二持久化模块,被配置成响应于检测出上述目标业务类配置有上述文件持久化插件且未配置有上述数据库持久化插件,调用上述第二接口进行数据持久化;或者第三持久化模块,被配置成响应于检测出上述目标业务类配置有上述数据库持久化插件和上述文件持久化插件,分别调用上述第一接口和上述第二接口进行数据持久化。
在本实施例的一些可选的实现方式中,该装置还包括:协议定义单元,被配置成分别为各业务类定义数据库持久化操作协议和文件持久化操作协议,其中,上述数据库持久化操作协议包括第一方法的声明,上述文件持久化操作协议包括第二方法的声明;插件创建单元,被配置成创建数据库持久化插件和文件持久化插件,在上述数据库持久化插件中定义第一接口,在上述文件持久化插件中定义第二接口,其中,上述第一接口封装有上述第一方法,上述第二接口封装有上述第二方法;第一分类创建单元,被配置成为上述各业务类分别创建数据库持久化分类和/或文件持久化分类,其中,上述数据库持久化分类用于为业务类添加上述第一方法,上述文件持久化分类用于为业务类添加上述第二方法。
在本实施例的一些可选的实现方式中,上述检测单元,包括:第一确定模块,被配置成检测上述目标业务类中是否包含上述数据库持久化分类和上述文件持久化分类;第二确定模块,被配置成响应于检测出包含上述数据库持久化分类,确定上述目标业务类配置有上述数据库持久化插件,以及,响应于检测出包含上述文件持久化分类,确定配置有上述文件持久化插件。
在本实施例的一些可选的实现方式中,上述数据库持久化操作协议还包括从数据库读取数据的第三方法的声明,上述文件持久化操作协议还包括从文件读取数据的第四方法的声明;以及该装置还包括:接口定义单元,被配置成在上述数据库持久化插件中定义上述第三接口,在上述文件持久化插件中定义上述第四接口,其中,上述第三接口封装有上述第三方法,上述第四接口封装有上述第四方法;第二分类创建单元,被配置成为上述各业务类分别创建数据库读取分类和/或文件读取分类,其中,上述数据库读取分类用于为业务类添加上述第三方法,上述文件读取分类用于为业务类添加上述第四方法。
在本实施例的一些可选的实现方式中,该装置还包括:第一确定单元,被配置成响应于接收到针对上述目标业务类的数据读取指令,检测上述目标业务类中是否包含上述数据库读取分类;第一读取单元,被配置成响应于检测出上述目标业务类中包含上述数据库读取分类,调用上述数据库持久化插件中的上述第三接口,读取数据库中的数据。
在本实施例的一些可选的实现方式中,该装置还包括:第二确定单元,被配置成响应于检测出上述目标业务类中不包含上述数据库读取分类,确定上述目标业务类中是否包含上述文件读取分类;第二读取单元,被配置成响应于检测出上述目标业务类中包含上述文件读取分类,调用上述文件持久化插件中的上述第四接口,读取数据库中的数据。
本申请的上述实施例提供的装置,在接收到针对目标业务类的数据持久化指令后,利用反射机制检测上述目标业务类是否配置有数据库持久化插件和文件持久化插件,而后调用检测出的插件中的接口,进行数据持久化或者数据读取。由于不同的持久化插件定义了通过不同持久化方法的接口,因而,针对不同的持久化需求,可以通过检测所配置持久化插件,确定持久化方式以及读取方式。由此,实现了数据持久化方式和数据读取方式的插件化。此外,由于在iOS应用开发过程中,直接进行插件配置即可选取持久化方式,因而,针对不同的开发需求,不需要对源代码进行代码裁剪,降低了iOS应用的开发难度。
下面参考图4,其示出了适于用来实现本申请实施例的电子设备的计算机***400的结构示意图。图4示出的电子设备仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图4所示,计算机***400包括中央处理单元(CPU)401,其可以根据存储在只读存储器(ROM)402中的程序或者从存储部分408加载到随机访问存储器(RAM)403中的程序而执行各种适当的动作和处理。在RAM 403中,还存储有***400操作所需的各种程序和数据。CPU401、ROM 402以及RAM 403通过总线404彼此相连。输入/输出(I/O)接口405也连接至总线404。
以下部件连接至I/O接口405:包括键盘、鼠标等的输入部分406;包括诸如液晶显示器(LCD)等以及扬声器等的输出部分407;包括硬盘等的存储部分408;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分409。通信部分409经由诸如因特网的网络执行通信处理。驱动器410也根据需要连接至I/O接口405。可拆卸介质411,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器410上,以便于从其上读出的计算机程序根据需要被安装入存储部分408。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分409从网络上被下载和安装,和/或从可拆卸介质411被安装。在该计算机程序被中央处理单元(CPU)401执行时,执行本申请的方法中限定的上述功能。需要说明的是,本申请所述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本申请各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的装置中所包含的;也可以是单独存在,而未装配入该装置中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该装置执行时,使得该装置:响应于接收到针对目标业务类的数据持久化指令,利用反射机制检测该目标业务类是否配置有数据库持久化插件和文件持久化插件;调用检测出的插件中的接口,进行数据持久化。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (16)
1.一种数据处理方法,其特征在于,应用于支持iOS应用的开发的电子设备,所述iOS应用包括至少一个业务类,所述方法包括:
响应于接收到针对目标业务类的数据持久化指令,利用反射机制检测所述目标业务类是否配置有数据库持久化插件和文件持久化插件,其中,所述数据库持久化插件中定义有第一接口,所述第一接口封装有将数据持久化至数据库的第一方法,所述文件持久化插件中定义有第二接口,所述第二接口封装有将数据持久化至文件的第二方法;
基于检测结果,确定所述目标业务类所配置的插件,调用所述插件中的接口,进行数据持久化;
所述方法还包括:
若所述iOS应用为基线应用,则配置数据库持久化插件;
若所述iOS应用为SDK,则配置文件持久化插件。
2.根据权利要求1所述的数据处理方法,其特征在于,所述基于检测结果,确定所述目标业务类所配置的插件,调用所述插件中的接口,进行数据持久化,包括:
响应于检测出所述目标业务类配置有所述数据库持久化插件且未配置有所述文件持久化插件,调用所述第一接口进行数据持久化;或者
响应于检测出所述目标业务类配置有所述文件持久化插件且未配置有所述数据库持久化插件,调用所述第二接口进行数据持久化;或者
响应于检测出所述目标业务类配置有所述数据库持久化插件和所述文件持久化插件,分别调用所述第一接口和所述第二接口进行数据持久化。
3.根据权利要求1所述的数据处理方法,其特征在于,在所述响应于接收到针对目标业务类的数据持久化指令之前,所述方法还包括:
分别为各业务类定义数据库持久化操作协议和文件持久化操作协议,其中,所述数据库持久化操作协议包括第一方法的声明,所述文件持久化操作协议包括第二方法的声明;
创建数据库持久化插件和文件持久化插件,在所述数据库持久化插件中定义第一接口,在所述文件持久化插件中定义第二接口,其中,所述第一接口封装有所述第一方法,所述第二接口封装有所述第二方法;
为所述各业务类分别创建数据库持久化分类和/或文件持久化分类,其中,所述数据库持久化分类用于为业务类添加所述第一方法,所述文件持久化分类用于为业务类添加所述第二方法。
4.根据权利要求3所述的数据处理方法,其特征在于,所述利用反射机制检测所述目标业务类是否配置有数据库持久化插件和文件持久化插件,包括:
检测所述目标业务类中是否包含所述数据库持久化分类和所述文件持久化分类;
响应于检测出包含所述数据库持久化分类,确定所述目标业务类配置有所述数据库持久化插件,以及,响应于检测出包含所述文件持久化分类,确定配置有所述文件持久化插件。
5.根据权利要求3所述的数据处理方法,其特征在于,所述数据库持久化操作协议还包括从数据库读取数据的第三方法的声明,所述文件持久化操作协议还包括从文件读取数据的第四方法的声明;以及
在所述创建数据库持久化插件和文件持久化插件之后,所述方法还包括:
在所述数据库持久化插件中定义第三接口,在所述文件持久化插件中定义第四接口,其中,所述第三接口封装有所述第三方法,所述第四接口封装有所述第四方法;
为所述各业务类分别创建数据库读取分类和/或文件读取分类,其中,所述数据库读取分类用于为业务类添加所述第三方法,所述文件读取分类用于为业务类添加所述第四方法。
6.根据权利要求5所述的数据处理方法,其特征在于,所述方法还包括:
响应于接收到针对所述目标业务类的数据读取指令,检测所述目标业务类中是否包含所述数据库读取分类;
响应于检测出所述目标业务类中包含所述数据库读取分类,调用所述数据库持久化插件中的所述第三接口,读取数据库中的数据。
7.根据权利要求6所述的数据处理方法,其特征在于,在所述检测所述目标业务类中是否包含所述数据库读取分类之后,所述方法还包括:
响应于检测出所述目标业务类中不包含所述数据库读取分类,判断所述目标业务类中是否包含所述文件读取分类;
响应于检测出所述目标业务类中包含所述文件读取分类,调用所述文件持久化插件中的所述第四接口,读取数据库中的数据。
8.一种数据处理装置,其特征在于,应用于支持iOS应用的开发的电子设备,所述iOS应用包括至少一个业务类,所述装置包括:
检测单元,被配置成响应于接收到针对目标业务类的数据持久化指令,利用反射机制检测所述目标业务类是否配置有数据库持久化插件和文件持久化插件,其中,所述数据库持久化插件中定义有第一接口,所述第一接口封装有将数据持久化至数据库的第一方法,所述文件持久化插件中定义有第二接口,所述第二接口封装有将数据持久化至文件的第二方法;
持久化单元,被配置成基于检测结果,确定所述目标业务类所配置的插件,调用所述插件中的接口,进行数据持久化;
所述数据处理装置还用于:
若所述iOS应用为基线应用,则配置数据库持久化插件;
若所述iOS应用为SDK,则配置文件持久化插件。
9.根据权利要求8所述的数据处理装置,其特征在于,所述持久化单元,包括:
第一持久化模块,被配置成响应于检测出所述目标业务类配置有所述数据库持久化插件且未配置有所述文件持久化插件,调用所述第一接口进行数据持久化;或者
第二持久化模块,被配置成响应于检测出所述目标业务类配置有所述文件持久化插件且未配置有所述数据库持久化插件,调用所述第二接口进行数据持久化;或者
第三持久化模块,被配置成响应于检测出所述目标业务类配置有所述数据库持久化插件和所述文件持久化插件,分别调用所述第一接口和所述第二接口进行数据持久化。
10.根据权利要求8所述的数据处理装置,其特征在于,所述装置还包括:
协议定义单元,被配置成分别为各业务类定义数据库持久化操作协议和文件持久化操作协议,其中,所述数据库持久化操作协议包括第一方法的声明,所述文件持久化操作协议包括第二方法的声明;
插件创建单元,被配置成创建数据库持久化插件和文件持久化插件,在所述数据库持久化插件中定义第一接口,在所述文件持久化插件中定义第二接口,其中,所述第一接口封装有所述第一方法,所述第二接口封装有所述第二方法;
第一分类创建单元,被配置成为所述各业务类分别创建数据库持久化分类和/或文件持久化分类,其中,所述数据库持久化分类用于为业务类添加所述第一方法,所述文件持久化分类用于为业务类添加所述第二方法。
11.根据权利要求10所述的数据处理装置,其特征在于,所述检测单元,包括:
第一确定模块,被配置成检测所述目标业务类中是否包含所述数据库持久化分类和所述文件持久化分类;
第二确定模块,被配置成响应于检测出包含所述数据库持久化分类,确定所述目标业务类配置有所述数据库持久化插件,以及,响应于检测出包含所述文件持久化分类,确定配置有所述文件持久化插件。
12.根据权利要求10所述的数据处理装置,其特征在于,所述数据库持久化操作协议还包括从数据库读取数据的第三方法的声明,所述文件持久化操作协议还包括从文件读取数据的第四方法的声明;以及
所述装置还包括:
接口定义单元,被配置成在所述数据库持久化插件中定义第三接口,在所述文件持久化插件中定义第四接口,其中,所述第三接口封装有所述第三方法,所述第四接口封装有所述第四方法;
第二分类创建单元,被配置成为所述各业务类分别创建数据库读取分类和/或文件读取分类,其中,所述数据库读取分类用于为业务类添加所述第三方法,所述文件读取分类用于为业务类添加所述第四方法。
13.根据权利要求12所述的数据处理装置,其特征在于,所述装置还包括:
第一确定单元,被配置成响应于接收到针对所述目标业务类的数据读取指令,检测所述目标业务类中是否包含所述数据库读取分类;
第一读取单元,被配置成响应于检测出所述目标业务类中包含所述数据库读取分类,调用所述数据库持久化插件中的所述第三接口,读取数据库中的数据。
14.根据权利要求13所述的数据处理装置,其特征在于,所述装置还包括:
第二确定单元,被配置成响应于检测出所述目标业务类中不包含所述数据库读取分类,判断所述目标业务类中是否包含所述文件读取分类;
第二读取单元,被配置成响应于检测出所述目标业务类中包含所述文件读取分类,调用所述文件持久化插件中的所述第四接口,读取数据库中的数据。
15.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,其上存储有一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7中任一所述的方法。
16.一种计算机可读介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910319042.4A CN110188071B (zh) | 2019-04-19 | 2019-04-19 | 数据处理方法、装置、电子设备和计算机可读介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910319042.4A CN110188071B (zh) | 2019-04-19 | 2019-04-19 | 数据处理方法、装置、电子设备和计算机可读介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110188071A CN110188071A (zh) | 2019-08-30 |
CN110188071B true CN110188071B (zh) | 2021-11-02 |
Family
ID=67714737
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910319042.4A Active CN110188071B (zh) | 2019-04-19 | 2019-04-19 | 数据处理方法、装置、电子设备和计算机可读介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110188071B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112102068A (zh) * | 2020-09-16 | 2020-12-18 | 中国建设银行股份有限公司 | 一种etc业务办理方法和*** |
CN112817580B (zh) * | 2021-01-27 | 2023-09-01 | 北京奇艺世纪科技有限公司 | 一种数据处理方法、装置、电子设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101126979A (zh) * | 2007-06-08 | 2008-02-20 | 北京大学 | 应用服务器公共服务松耦合接入方法 |
CN101339559A (zh) * | 2008-07-18 | 2009-01-07 | 北京航空航天大学 | 一种数据持久化实现方法 |
CN103425462A (zh) * | 2012-05-14 | 2013-12-04 | 阿里巴巴集团控股有限公司 | 一种工作流数据持久化的方法和装置 |
CN108062330A (zh) * | 2016-11-09 | 2018-05-22 | 湖南移商动力网络技术有限公司 | 一种基于o2o***电商平台的解决方案 |
CN109446255A (zh) * | 2018-09-30 | 2019-03-08 | 珠海沙盒网络科技有限公司 | 一种可自适应的存储方法及*** |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10289684B2 (en) * | 2011-05-03 | 2019-05-14 | Vmware, Inc. | Live migration of virtual machine persistent data using mirrored input-output operations |
US9378065B2 (en) * | 2013-03-15 | 2016-06-28 | Advanced Elemental Technologies, Inc. | Purposeful computing |
CN107506189A (zh) * | 2017-08-15 | 2017-12-22 | 四川长虹电器股份有限公司 | 一种基于工厂模式实现的iOS数据持久化方法 |
US10880392B2 (en) * | 2018-04-12 | 2020-12-29 | Pearson Management Services Limited | System and method for automated hybrid network creation |
-
2019
- 2019-04-19 CN CN201910319042.4A patent/CN110188071B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101126979A (zh) * | 2007-06-08 | 2008-02-20 | 北京大学 | 应用服务器公共服务松耦合接入方法 |
CN101339559A (zh) * | 2008-07-18 | 2009-01-07 | 北京航空航天大学 | 一种数据持久化实现方法 |
CN103425462A (zh) * | 2012-05-14 | 2013-12-04 | 阿里巴巴集团控股有限公司 | 一种工作流数据持久化的方法和装置 |
CN108062330A (zh) * | 2016-11-09 | 2018-05-22 | 湖南移商动力网络技术有限公司 | 一种基于o2o***电商平台的解决方案 |
CN109446255A (zh) * | 2018-09-30 | 2019-03-08 | 珠海沙盒网络科技有限公司 | 一种可自适应的存储方法及*** |
Non-Patent Citations (2)
Title |
---|
ios开发中的4种数据持久化方式;FIGHTING;《https://blog.csdn.net/u012701023/article/details/50547213》;20160120;全文 * |
基于微信公众平台的商城***的设计与实现;齐艳丽;《中国优秀硕士学位论文全文数据库 信息科技辑》;20180415(第 04 期);I138-1846 * |
Also Published As
Publication number | Publication date |
---|---|
CN110188071A (zh) | 2019-08-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110096338B (zh) | 智能合约执行方法、装置、设备及介质 | |
CN107133052B (zh) | 流程创建的方法及装置 | |
US11151018B2 (en) | Method and apparatus for testing a code file | |
US9928038B2 (en) | Dynamically building locale objects or subsections of locale objects based on historical data | |
US10169034B2 (en) | Verification of backward compatibility of software components | |
US20140196011A1 (en) | Automatic regression testing based on cyclomatic complexity | |
CN111061489B (zh) | 一种多平台编译检测方法、装置、设备及介质 | |
CN110865889A (zh) | 组件间传递事件的方法和装置 | |
CN113127050B (zh) | 一种应用资源打包过程监控方法、装置、设备和介质 | |
CN110188071B (zh) | 数据处理方法、装置、电子设备和计算机可读介质 | |
CN114115838A (zh) | 一种基于分布式组件和云平台的数据交互方法及*** | |
US9779014B2 (en) | Resilient mock object creation for unit testing | |
CN110045952B (zh) | 代码调用方法与装置 | |
CN109189591B (zh) | 用于调用应用组件的方法和装置 | |
CN113778451B (zh) | 文件加载方法、装置、计算机***和计算机可读存储介质 | |
CN112286802B (zh) | 一种测试程序性能方法、装置和电子设备 | |
CN111045746A (zh) | 代码扩展方法和框架 | |
CN114047923A (zh) | 错误代码定位方法、装置、存储介质以及电子设备 | |
CN108089852B (zh) | 建立属性访问的方法、介质、装置和计算设备 | |
CN112052054A (zh) | 函数调用方法、装置、电子设备及存储介质 | |
CN113778388A (zh) | 程序开发方法和装置 | |
CN112068814A (zh) | 可执行文件的生成方法、装置、***及介质 | |
CN113553040B (zh) | 可见即可说识别功能的注册实现方法、装置、设备及介质 | |
CN110647405A (zh) | ***消息处理方法、电子设备和计算机可读存储介质 | |
US20240126541A1 (en) | Inversion process for rules framework |
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 |