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类文件。
【技术特征摘要】
1.一种实现领域驱动模型的方法,其特征在于,包括:在编译程序源代码时,确定所述源代码内各个模型元素类对应的模型元素;判断预先为各个所述模型元素添加的模型元素注解是否分别满足预设条件,所述模型元素注解包括注解标识;若存在至少一个所述模型元素注解满足预设条件,针对每个满足预设条件的模型元素注解,分别调用与注解标识对应的注解处理器处理所述模型元素注解,得到Class类文件。2.根据权利要求1所述的实现领域驱动模型的方法,其特征在于,所述分别调用与注解标识对应的注解处理器处理所述模型元素注解,得到Class类文件,包括:根据预设的对应关系,获取与所述模型元素注解对应的模型元素的属性信息和行为信息;将所述模型元素的属性信息和行为信息插入到编译形成的抽象语法树中;删除与所述模型元素注解相关的依赖;将所述抽象语法树转换成Class类文件。3.根据权利要求2所述的实现领域驱动模型的方法,其特征在于,所述依赖至少包括:所述模型元素注解、与所述模型元素注解对应的导入包和说明。4.根据权利要求1所述的实现领域驱动模型的方法,其特征在于,所述在编译程序源代码之前,包括:获取预先生成的JAR包,所述JAR包中包括:每个模型元素对应的模型元素注解、与每个模型元素注解对应的注解处理器和注解处理器入口类;将每个模型元素注解添加到与自身对应的模型元素类的源代码中。5.根据权利要求4所述的实现领域驱动模型的方法,其特征在于,所述在编译程序源代码之前,还包括:将所述JAR包添加到所述JAVA语言编译器编译的编译路径中。6.一种实现领域驱动模型的装置,其特征在于,包括:确定模块(110),用于在编译程序源代码时,确定所述源代码内各个模型元素...
【专利技术属性】
技术研发人员:石正川,刘兆明,
申请(专利权)人:江苏千米网络科技股份有限公司,
类型:发明
国别省市:江苏,32
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。