实现领域驱动模型的方法及装置制造方法及图纸

技术编号:17363453 阅读:45 留言:0更新日期:2018-02-28 13:21
本发明专利技术公开了一种实现领域驱动模型的方法及装置,涉及计算机软件技术领域,包括:在编译程序源代码时,确定所述源代码内各个模型元素类对应的模型元素;判断预先为各个所述模型元素添加的模型元素注解是否分别满足预设条件,所述模型元素注解包括注解标识;若存在至少一个所述模型元素注解满足预设条件,针对每个满足预设条件的模型元素注解,分别调用与注解标识对应的注解处理器处理所述模型元素注解,得到Class类文件。本发明专利技术提供的一种实现领域驱动模型的方法及装置,通过在源代码中添加多个模型元素注解,在编译过程中分别调用与各个模型元素注解对应的注解处理器进行处理,即可得到领域驱动模型,简化业务开发的工作量,提高开发效率。

Method and device for implementation of domain driven model

The invention discloses a method and a device for realizing domain driven model, which relates to the technical field of computer software, including: the compiler source code, the source code to determine the model elements in each model element corresponding to the judgment in advance for each model element; the model elements add annotations are respectively meet the preset conditions the model elements, including annotation annotation marks; if there is at least one of the elements of the model meet the preset conditions for each note, meet the model elements preconditions, annotations, annotation processor identification and call respectively corresponding to the annotation of the model elements are annotated Class class files. And a device for realizing domain driven model method provided by the invention, by adding multiple model element annotations in the source code, annotated with each processor respectively called model elements corresponding to the notes in the compilation process, can be obtained by field driven model, simplify the business development workload, improve development efficiency.

【技术实现步骤摘要】
实现领域驱动模型的方法及装置
本专利技术涉及计算机软件
,尤其是涉及一种实现领域驱动模型的方法及装置。背景
驱动设计(Domain-drivenDesign,DDD),是一套综合软件系统分析和设计的面向对象建模方法。过去系统分析和系统设计都是分离的,这样割裂的结果导致需求分析的结果无法直接进行设计编程,而能够进行编程运行的代码却扭曲需求,导致客户运行软件后才发现很多功能不是自己想要的,而且软件不能快速跟随需求变化。而领域驱动设计打破了这种隔阂,提出了领域驱动模型的概念,统一了分析和设计编程,使得软件能够更灵活快速跟随需求变化。DDD的领域驱动模型的主要构成要素有:实体、值对象、聚合、聚合根、服务、仓储和工厂等。这些模型要素都有一些公共的属性和行为,以实体为例,实体作为一种领域对象,有如下的一些定义:定义ID标识;可以被仓储持久化;定义描述信息(即JAVA中的toString方法);成员变量对应的存取方法(getter、setter方法);必要的构造函数。其中,定义ID标识和构造函数等部分公共行为,可以通过定义基类的方法实现,即首先定义一个实体的基类,在基类定义实体公共的行为,然后所有实体类都继承这个基类。但这种实现方法的问题在于:继承是一种深耦合,侵入业务代码,扩展性较差,并且JAVA只支持单重继承,在运行时也需要依赖框架,系统复杂性较高。另外,比如仓储持久化、描述信息、成员变量对应的存取方法等部分公共行为,是无法通过定义基类的方法实现,必须在每个实现类重复定义。由此可见,现有的实现领域驱动模型的方法比较复杂,导致开发效率较差。
技术实现思路
有鉴于此,本专利技术的目的在于提供一种实现领域驱动模型的方法及装置,以解决现有技术中实现领域驱动模型的实现方法比较复杂,导致开发效率较差的技术问题。第一方面,本专利技术实施例提供了一种实现领域驱动模型的方法,包括:在编译程序源代码时,确定所述源代码内各个模型元素类对应的模型元素;判断预先为各个所述模型元素添加的模型元素注解是否分别满足预设条件,所述模型元素注解包括注解标识;若存在至少一个所述模型元素注解满足预设条件,针对每个满足预设条件的模型元素注解,分别调用与注解标识对应的注解处理器处理所述模型元素注解,得到Class类文件。结合第一方面,本专利技术实施例提供了第一方面的第一种可能的实施方式,其中,所述分别调用与注解标识对应的注解处理器处理所述模型元素注解,得到Class类文件,包括:根据预设的对应关系,获取与所述模型元素注解对应的模型元素的属性信息和行为信息;将所述模型元素的属性信息和行为信息插入到编译形成的抽象语法树中;删除与所述模型元素注解相关的依赖;将所述抽象语法树转换成Class类文件。结合第一方面,本专利技术实施例提供了第一方面的第二种可能的实施方式,其中,所述依赖至少包括:所述模型元素注解、与所述模型元素注解对应的导入包和说明。结合第一方面,本专利技术实施例提供了第一方面的第三种可能的实施方式,其中,所述在编译程序源代码之前,包括:获取预先生成的JAR包,所述JAR包中包括:每个模型元素对应的模型元素注解、与每个模型元素注解对应的注解处理器和注解处理器入口类;将每个模型元素注解添加到与自身对应的模型元素类的源代码中。结合第一方面,本专利技术实施例提供了第一方面的第四种可能的实施方式,其中,所述在编译程序源代码之前,还包括:将所述JAR包添加到所述JAVA语言编译器编译的编译路径中。第二方面,本专利技术实施例还提供一种实现领域驱动模型的装置,包括:确定模块,用于在编译程序源代码时,确定所述源代码内各个模型元素类对应的模型元素;注解处理器入口类模块,用于判断预先为各个所述模型元素添加的模型元素注解是否分别满足预设条件,所述模型元素注解包括注解标识,若存在至少一个所述模型元素注解满足预设条件,针对每个满足预设条件的模型元素注解,分别调用与注解标识对应的注解处理器处理所述模型元素注解,得到Class类文件。结合第二方面,本专利技术实施例提供了第二方面的第一种可能的实施方式,其中,所述注解处理器包括:第一获取模块,根据预设的对应关系,获取与所述模型元素注解对应的模型元素的属性信息和行为信息;插入模块,用于将所述模型元素的属性信息和行为信息插入到编译形成的抽象语法树中;删除模块,用于删除与所述模型元素注解相关的依赖;转换模块,用于将所述抽象语法树转换成Class类文件。结合第二方面,本专利技术实施例提供了第二方面的第二种可能的实施方式,其中,所述实现领域驱动模型的装置还包括:第二获取模块,用于获取预先生成的JAR包,所述JAR包中包括:每个模型元素对应的模型元素注解、与每个模型元素注解对应的注解处理器和注解处理器入口类;第一添加模块,用于将每个模型元素注解添加到与自身对应的模型元素类的源代码中;第二添加模块,用于将所述JAR包添加到所述JAVA语言编译器编译的编译路径中。第三方面,本专利技术实施例还提供一种电子设备,包括存储器、处理器,所述存储器中存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一方面所述的方法的步骤。第四方面,本专利技术实施例还提供一种具有处理器可执行的非易失的程序代码的计算机可读介质,所述程序代码使所述处理器执行第一方面所述的方法。本专利技术实施例带来了以下有益效果:本专利技术提供的一种实现领域驱动模型的方法及装置,预先在源代码的的各个所述模型元素类上添加对应的模型元素注解,在编译JAVA源代码时,判断各个模型元素注解是否分别满足预设条件,针对每个满足预设条件的模型元素注解,分别调用对应的注解处理器处理所述模型元素注解,最终得到Class类文件。本专利技术提供的一种实现领域驱动模型的方法及装置,通过在源代码中添加多个模型元素注解,在编译过程中分别调用与各个模型元素注解对应的注解处理器进行处理,即可以得到领域驱动模型,大大简化了业务开发的工作量,提高开发效率。本专利技术的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本专利技术而了解。本专利技术的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。为使本专利技术的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。附图说明为了更清楚地说明本专利技术具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术实施例一提供的实现领域驱动模型的方法的流程图;图2为本专利技术实施例二提供的实现领域驱动模型的方法的流程图;图3为本专利技术实施例三提供的实现领域驱动模型的方法的流程图;图4为本专利技术实施例四提供的实现领域驱动模型的装置的结构示意图;图5为本专利技术实施例五提供的实现领域驱动模型的装置的结构示意图。图标:110-确定模块;120-注解处理器入口类模块;130-注解处理器;131-第一获取模块;132-插入模块;133-删除模块;134-转换模块;140-第二获取模块;150-第一添加模块;160-第二添加模块。具体实施方式为使本专利技术实施例本文档来自技高网...
实现领域驱动模型的方法及装置

【技术保护点】
一种实现领域驱动模型的方法,其特征在于,包括:在编译程序源代码时,确定所述源代码内各个模型元素类对应的模型元素;判断预先为各个所述模型元素添加的模型元素注解是否分别满足预设条件,所述模型元素注解包括注解标识;若存在至少一个所述模型元素注解满足预设条件,针对每个满足预设条件的模型元素注解,分别调用与注解标识对应的注解处理器处理所述模型元素注解,得到Class类文件。

【技术特征摘要】
1.一种实现领域驱动模型的方法,其特征在于,包括:在编译程序源代码时,确定所述源代码内各个模型元素类对应的模型元素;判断预先为各个所述模型元素添加的模型元素注解是否分别满足预设条件,所述模型元素注解包括注解标识;若存在至少一个所述模型元素注解满足预设条件,针对每个满足预设条件的模型元素注解,分别调用与注解标识对应的注解处理器处理所述模型元素注解,得到Class类文件。2.根据权利要求1所述的实现领域驱动模型的方法,其特征在于,所述分别调用与注解标识对应的注解处理器处理所述模型元素注解,得到Class类文件,包括:根据预设的对应关系,获取与所述模型元素注解对应的模型元素的属性信息和行为信息;将所述模型元素的属性信息和行为信息插入到编译形成的抽象语法树中;删除与所述模型元素注解相关的依赖;将所述抽象语法树转换成Class类文件。3.根据权利要求2所述的实现领域驱动模型的方法,其特征在于,所述依赖至少包括:所述模型元素注解、与所述模型元素注解对应的导入包和说明。4.根据权利要求1所述的实现领域驱动模型的方法,其特征在于,所述在编译程序源代码之前,包括:获取预先生成的JAR包,所述JAR包中包括:每个模型元素对应的模型元素注解、与每个模型元素注解对应的注解处理器和注解处理器入口类;将每个模型元素注解添加到与自身对应的模型元素类的源代码中。5.根据权利要求4所述的实现领域驱动模型的方法,其特征在于,所述在编译程序源代码之前,还包括:将所述JAR包添加到所述JAVA语言编译器编译的编译路径中。6.一种实现领域驱动模型的装置,其特征在于,包括:确定模块(110),用于在编译程序源代码时,确定所述源代码内各个模型元素...

【专利技术属性】
技术研发人员:石正川刘兆明
申请(专利权)人:江苏千米网络科技股份有限公司
类型:发明
国别省市:江苏,32

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

1