实体对象的创建方法和实体对象创建装置制造方法及图纸

技术编号:6926049 阅读:212 留言:0更新日期:2012-04-11 18:40
本发明专利技术实施例公开了一种实体对象的创建方法和实体对象创建装置,涉及面向对象的软件开发领域,为解决软件系统依赖于实体对象而使软件系统失去通用性的问题而发明专利技术。所采用的具体技术方案为:一种实体对象的创建方法,包括:存储描述实体对象的元数据;在软件系统的运行期,根据模板、元数据和基类生成实体对象的源代码,所述模板表示实体对象源代码的生成策略;将所述源代码编译成实体对象的字节码;加载所述实体对象的字节码,并对所述实体对象的字节码中所定义的类实例化,以完成实体对象的创建。本发明专利技术还提供一种实体对象创建装置。本发明专利技术主要用于面向对象的软件系统中。

【技术实现步骤摘要】

本专利技术涉及面向对象的软件开发领域,尤其涉及实体对象的创建方法和实体对象创建装置
技术介绍
面向对象是当前主流的软件开发方法之一。在面向对象的系统中,实体对象用来表示现实世界中具体的业务实体,软件系统中数据的持久化,业务过程的执行和用户界面都与实体对象有关,例如在Java平台中,通常使用POJO (普通JAVA对象,Plain Ordinary Java Objects)对象或EJB中的实体Bean来表示实体对象。在目前常规的面向对象软件开发方法中,对于实体对象,一般在设计期由开发人员开发实体对象的代码,并在软件系统的其他部分调用,这样使整个系统具备了实体对象的相关性,使软件系统的通用性降低。在考虑软件系统的通用性方面的问题时,现有的技术主要着眼于实体对象的动态加载,以及实体对象之间关系的动态配置,这些方法能解决软件系统通用性方面的一部分问题,但实体对象源代码仍然需要由开发人员在设计期进行开发,当实体对象在运行期发生变更时,需要在设计期重新对实体对象源代码进行开发,从而增加了软件系统的开发成本,减小了软件系统的使用寿命。
技术实现思路
本专利技术实施例提供一种实体对象的创建方法和实体对象创建装置,能够减小软件系统的开发成本,增加软件系统的使用寿命。本专利技术一方面提供一种实体对象的创建方法,包括存储描述实体对象的元数据; 在软件系统的运行期,根据模板、元数据和基类生成实体对象的源代码,所述模板表示实体对象源代码的生成策略;将所述源代码编译成实体对象的字节码;加载所述实体对象的字节码,并对所述实体对象的字节码中所定义的类实例化,以完成实体对象的创建。本专利技术另一方面提供一种实体对象创建装置,包括存储单元,用于存储描述实体对象的元数据;源代码生成单元,用于在软件系统的运行期,根据模板、元数据和基类生成实体对象的源代码,所述模板表示实体对象源代码的生成策略;编译单元,用于将所述源代码编译成实体对象的字节码;加载单元,用于加载所述实体对象的字节码,并对所述实体对象的字节码中所定义的类实例化,以完成实体对象的创建。本专利技术通过在软件系统的运行期,根据模板、元数据和基类生成实体对象的源代码可将源代码的生成从传统的设计期延迟到了运行期,并将所生成的实体对象的源代码编译,加载编译之后生成字节码,并对字节码中所定义的类实例化以完成实体对象的创建,能够在软件系统的运行期动态创建实体对象,且实体对象在运行期发生变更时,无需重新开发实体对象的源代码,从而减小软件系统的开发成本,增加软件系统的使用寿命。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术实体对象创建方法实施例的流程图;图2为本专利技术实体对象创建方法实施例的具体流程图;图3为本专利技术实体对象创建装置的结构框图;图4为本专利技术实体对象创建装置中的源代码生成单元的结构框图;图5为图4中的模板选择和加载模块的结构框图;图6为图4中的解析模块的结构框图;图7为图3中的加载单元的结构框图;图8为图7中的实例化模块的结构框图。具体实施例方式下面将结合本专利技术实施例中的附图,对本专利技术实施例的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术的一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其它实施例,都属于本专利技术保护的范围。实施例1 本实施例提供一种实体对象的创建方法,包括S11,存储描述实体对象的元数据;S12,在软件系统的运行期,根据模板、元数据和基类生成实体对象的源代码,所述模板表示实体对象源代码的生成策略;S13,将所述源代码编译成实体对象的字节码;S14,加载所述实体对象的字节码,并对所述实体对象的字节码中所定义的类实例化,以完成实体对象的创建。本专利技术实施例通过在软件系统的运行期,根据模板、元数据和基类生成实体对象的源代码可将源代码的生成从传统的设计期延迟到了运行期,并将所生成的实体对象的源代码编译,加载编译之后生成字节码,并对字节码中所定义的类实例化以完成实体对象的创建,能够在软件系统的运行期动态创建实体对象,且实体对象在运行期发生变更时,无需重新开发实体对象的源代码,从而减小软件系统的开发成本,增加软件系统的使用寿命。可选地,S12中在软件系统的运行期,根据模板、元数据和基类生成实体对象的源代码具体包括在软件系统的运行期,根据实体对象的元数据选择对应模板并加载此对应模板;根据所述对应模板中实体对象源代码的生成策略相应地选择基类,所述基类被实体对象继承以使所述实体对象具有所述基类的属性和方法;其中,所述对应模板中实体对象源代码的生成策略可体现出类元数据中基类的结构类型,基类的选择是根据类元数据中基类的结构类型来确定,基类的结构类型包括普通结构、树型结构和顺序结构;基类是实体对象的父类,而基类对于软件系统而言是可知的, 通过调用基类的方法,可实现对实体对象的通用处理;对所述对应模板中的源代码进行解析以生成实体对象的源代码。进一步地,所述在软件系统的运行期,根据实体对象的元数据选择对应模板并加载此对应模板具体包括在软件系统的运行期,根据实体对象的元数据,判断所述实体对象所属的类的类型;根据所述实体对象所属的类的类型选择与此类的类型对应的模板,并加载此对应模板。其中,不同的类的类型可对应不同的类源代码模板,配置类元数据时可以选择创建类源代码使用的模板,该过程由开发人员在创建元数据时根据类的类型编写相应的源代码完成,在软件系统的运行期可直接使用。可选地,所述对所述对应模板中的源代码进行解析以生成实体对象的源代码具体包括对所述对应模板中的源代码进行解析以识别出所述对应模板源代码中的变量和语句;加载与所述对应模板源代码中的所述变量和语句相关的元数据;将所述对应模板源代码中的变量替换为与所述变量相关的元数据,并将所述对应模板源代码中的语句替换为与所述语句相关的元数据,替换后生成实体对象的源代码。可选地,S14中,所述加载所述实体对象的字节码包括根据元数据,采用关联加载策略加载所述实体对象的字节码。进一步地,所述根据元数据,采用关联加载策略加载所述实体对象的字节码具体包括根据元数据,对所述实体对象的所有属性进行遍历;判断所遍历的所有属性的数据类型是否关联其他实体类;若关联,则加载所述其他实体类直至所述所遍历的所有属性的数据类型都不再关联其他实体类;加载所述实体对象的字节码。为了更好的理解本专利技术实施例所采用的技术方案,下面通过本专利技术实体对象创建方法的具体实施例来更详细地描述本专利技术。实施例2 本实施例提供的实体对象创建方法具体包括S21,存储描述实体对象的元数据;元数据是对实体对象的关键抽象,描述实体对象的结构信息,元数据以类元数据为核心,组织实体对象各方面的信息;所述描述实体对象的元数据包括类元数据、持久化对象属性元数据、值对象属性元数据和关联元数据;针对不同元数据分别作如下说明>类元数据类元数据是元数据的核心,描述实体对象的基本信息,并组织实体对象各方面的元数据信息,包括属性、关联、操本文档来自技高网...

【技术保护点】
1.一种实体对象的创建方法,其特征在于,包括:存储描述实体对象的元数据;在软件系统的运行期,根据模板、元数据和基类生成实体对象的源代码,所述模板表示实体对象源代码的生成策略;将所述源代码编译成实体对象的字节码;加载所述实体对象的字节码,并对所述实体对象的字节码中所定义的类实例化,以完成实体对象的创建。

【技术特征摘要】

【专利技术属性】
技术研发人员:金崇华
申请(专利权)人:青岛海信传媒网络技术有限公司
类型:发明
国别省市:95

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1