一种基于关系的聚合建模方法、设备及介质技术

技术编号:38598429 阅读:13 留言:0更新日期:2023-08-26 23:33
本说明书实施例公开了一种基于关系的聚合建模方法、设备及介质,涉及计算机的技术领域,方法包括:获取用例或者领域事件,基于用例或者领域事件提取出候选聚合对象,并从候选聚合对象中确定聚合根;基于用例的流程或者领域事件,识别聚合根与各聚合对象之间的关联关系,关联关系包括一对一关系和一对多关系;比较聚合对象的生命周期和聚合根的生命周期,识别关联关系在聚合模型内的聚合关系类型,聚合关系类型包括显示关系和隐含关系;将显示关系所依赖的候选聚合对象确定为聚合模型内的聚合对象,并将引用聚合根的显示关系和隐含关系作为聚合模型内的关系;根据聚合根、聚合对象和聚合关系类型,确定聚合模型的边界。确定聚合模型的边界。确定聚合模型的边界。

【技术实现步骤摘要】
一种基于关系的聚合建模方法、设备及介质


[0001]本说明书涉及计算机的
,尤其涉及一种基于关系的聚合建模方法、设备及介质。

技术介绍

[0002]DDD(Domain

driven design)领域驱动设计是一种通过将实现连接到持续进化的模型来满足复杂需求的软件开发方法。领域模型是对业务模型的抽象,DDD是把业务模型翻译成系统架构设计的一种方式。
[0003]在业务开发过程中,需要领域工程师为业务进行建模,将真实业务概念映射到面向对象的代码设计,将业务概念与实体和值对象进行映射。因此如何识别业务实体,处理业务实体边界,处理实体与实体之间的关系,实体与值对象之间的关系成为领域建模是否成功的关键。
[0004]聚合是领域对象的显式分组,旨在支持领域模型的行为和不变性,同时充当一致性和事务性边界。我们,通过定义对象间的隶属关系和边界来实现领域模型的内聚,把一些关联性极强、生命周期一致的实体、值对象放到一个聚合里。聚合根是聚合的根实体,最具代表性的实体,可以通过聚合根来访问聚合。
[0005]由于DDD将软件系统分为多个领域,每个领域都有自己的模型和规则,这种分层结构使得软件系统更易于维护和扩展。当业务需求发生变化时,只需要修改相应的领域模型和规则,而不需要修改整个系统。但是,目前聚合建模的方法提到内部的实体与值对象之间是以上述属性(定义)的方式展示,属性的概念能够表达隶属关系,但依旧比较模糊,不能进一步清晰地表达怎样的隶属关系以及聚合边界是什么,因此无法准确地进行维护、拓展和修改。

技术实现思路

[0006]本说明书一个或多个实施例提供了一种基于关系的聚合建模方法、设备及介质,用于解决如下技术问题:目前聚合建模的方法不能进一步清晰地表达怎样的隶属关系以及聚合边界是什么,因此无法准确地进行维护、拓展和修改。。
[0007]本说明书一个或多个实施例采用下述技术方案:获取用例或者领域事件,基于所述用例或者所述领域事件提取出候选聚合对象,并从候选聚合对象中确定聚合根;基于所述用例的流程或者所述领域事件,识别所述聚合根与各候选聚合对象之间的关联关系,所述关联关系包括一对一关系和一对多关系;比较所述候选聚合对象的生命周期和所述聚合根的生命周期,识别所述关联关系在聚合模型内的聚合关系类型,所述聚合关系类型包括显示关系和隐含关系;将所述显示关系所依赖的候选聚合对象确定为所述聚合模型内的聚合对象,并将引用所述聚合根的显示关系和隐含关系作为所述聚合模型内的关系;根据所述聚合根、所述聚合对象和所述聚合关系类型,确定所述聚合模型的边界。
[0008]进一步地,所述获取用例或者领域事件,基于所述用例或者所述领域事件提取出聚合对象,并从聚合对象中确定聚合根,包括:获取用例或者领域事件,并从所述用例或者所述领域事件中提取出名词,作为候选聚合对象;从所述候选聚合对象中确定值类型数据的值对象,将剩余的候选聚合对象确定为实体;基于所述用例的流程或者所述领域事件,从所述实体中确定与其他各所述实体以及所述值对象均关联的实体,作为聚合根。
[0009]进一步地,比较所述聚合对象的生命周期和所述聚合根的生命周期,识别所述关联关系在聚合模型内的聚合关系类型,所述聚合关系类型包括显示关系和隐含关系,包括:若所述聚合对象不具有独立的生命周期,则将所述一对一关系确定为一对一值对象关系;若所述聚合对象与所述聚合根具有相同的生命周期,则将所述关联关系确定为聚合内显示关系,所述显示关系包括一对一显示关系和一对多显示关系;若所述聚合对象与所述聚合根不具有相同的生命周期,则将所述一对一关系确定为一对一聚合关系,将所述一对多关系确定为一对多隐含关系。
[0010]进一步地,在素所述比较所述聚合对象的生命周期和所述聚合根的生命周期,识别所述关联关系在聚合模型内的聚合关系类型之后,还包括:对所述一对一显示关系进行建模,得到一对一显示关系实体;将所述一对一显示关系实体划分入所述聚合模型中;对所述一对多显示关系进行建模,得到一对多显示关系实体;将所述一对多显示关系实体划分入所述聚合模型中。
[0011]进一步地,还包括:以所述聚合根为根节点,以所述候选聚合对象为子节点,根据所述候选聚合对象与所述聚合根之间的所述聚合关系类型,建立树形聚合模型。
[0012]进一步地,在所述建立树形聚合模型之后,还包括:用所述聚合关系类型代替所述候选聚合对象,生成聚合模型。
[0013]进一步地,还包括:采用父节点表征聚合根,采用树形结构的节点类型表征所述聚合关系类型,生成树形存储结构;采用所述树形存储结构的节点数据表征当前关系节点所包含的信息,并将所述节点数据作为元数据。
[0014]进一步地,还包括:采用叶子节点处理器和非叶子节点的处理器,来处理树形存储结构的关系各个节点的元数据;采用叶子节点处理器的基类,获取当前节点属性的反射信息和特性的注解信息来处理叶子节点;采用非叶子节点处理器的基类,在遍历子节点前触发先动方法,在在子节点遍历后触发后动方法;
采用叶子节点处理器分别处理一对一值对象关系节点、一对一聚合关系节点和一对多隐含关系节点;采用子节点继承分别处理聚合根节点、聚合根子类节点、一对一显示关系节点和一对多显示关系节点。
[0015]本说明书一个或多个实施例提供一种基于关系的聚合建模方法,所述方法包括:本说明书一个或多个实施例提供一种基于关系的聚合建模设备,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:获取用例或者领域事件,基于所述用例或者所述领域事件提取出候选聚合对象,并从候选聚合对象中确定聚合根;基于所述用例的流程或者所述领域事件,识别所述聚合根与各候选聚合对象之间的关联关系,所述关联关系包括一对一关系和一对多关系;比较所述聚合对象的生命周期和所述聚合根的生命周期,识别所述关联关系在聚合模型内的聚合关系类型,所述聚合关系类型包括显示关系和隐含关系;将所述显示关系所依赖的候选聚合对象确定为所述聚合模型内的聚合对象,并将引用所述聚合根的显示关系和隐含关系作为所述聚合模型内的关系;根据所述聚合根、所述聚合对象和所述聚合关系类型,确定所述聚合模型的边界。
[0016]本说明书一个或多个实施例提供的一种非易失性计算机存储介质,存储有计算机可执行指令,所述计算机可执行指令设置为:获取用例或者领域事件,基于所述用例或者所述领域事件提取出候选聚合对象,并从候选聚合对象中确定聚合根;基于所述用例的流程或者所述领域事件,识别所述聚合根与各候选聚合对象之间的关联关系,所述关联关系包括一对一关系和一对多关系;比较所述聚合对象的生命周期和所述聚合根的生命周期,识别所述关联关系在聚合模型内的聚合关系类型,所述聚合关系类型包括显示关系和隐含关系;将所述显示关系所依赖的候选聚合对象确定为所述聚合模型内的聚合对象,并将引用所述聚合根的显示关系和隐含关系作为所述聚合模型内的关系本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于关系的聚合建模方法,其特征在于,所述方法包括:获取用例或者领域事件,基于所述用例或者所述领域事件提取出候选聚合对象,并从所述候选聚合对象中确定聚合根;基于所述用例的流程或者所述领域事件,识别所述聚合根与各所述候选聚合对象之间的关联关系,所述关联关系包括一对一关系和一对多关系;比较所述候选聚合对象的生命周期和所述聚合根的生命周期,识别所述关联关系在聚合模型内的聚合关系类型,所述聚合关系类型包括显示关系和隐含关系;将所述显示关系所依赖的候选聚合对象确定为所述聚合模型内的聚合对象,并将引用所述聚合根的显示关系和隐含关系作为所述聚合模型内的关系;根据所述聚合根、所述聚合对象和所述聚合关系类型,确定所述聚合模型的边界。2.根据权利要求1所述的一种基于关系的聚合建模方法,其特征在于,所述获取用例或者领域事件,基于所述用例或者所述领域事件提取出聚合对象,并从聚合对象中确定聚合根,包括:获取用例或者领域事件,并从所述用例或者所述领域事件中提取出名词,作为候选聚合对象;从所述候选聚合对象中确定值类型数据的值对象,将剩余的候选聚合对象确定为实体;基于所述用例的流程或者所述领域事件,从所述实体中确定与其他各所述实体以及所述值对象均关联的实体,作为聚合根。3.根据权利要求1所述的一种基于关系的聚合建模方法,其特征在于,比较所述聚合对象的生命周期和所述聚合根的生命周期,识别所述关联关系在聚合模型内的聚合关系类型,所述聚合关系类型包括显示关系和隐含关系,包括:若所述聚合对象不具有独立的生命周期,则将所述一对一关系确定为一对一值对象关系;若所述聚合对象与所述聚合根具有相同的生命周期,则将所述关联关系确定为聚合内显示关系,所述显示关系包括一对一显示关系和一对多显示关系;若所述聚合对象与所述聚合根不具有相同的生命周期,则将所述一对一关系确定为一对一聚合关系,将所述一对多关系确定为一对多隐含关系。4.根据权利要求3所述的一种基于关系的聚合建模方法,其特征在于,在所述比较所述聚合对象的生命周期和所述聚合根的生命周期,识别所述关联关系在聚合模型内的聚合关系类型之后,还包括:对所述一对一显示关系进行建模,得到一对一显示关系实体;将所述一对一显示关系实体划分入所述聚合模型中;对所述一对多显示关系进行建模,得到一对多显示关系实体;将所述一对多显示关系实体划分入所述聚合模型中。5.根据权利要求1所述的一种基于关系的聚合建模方法,其特征在于,还包括:以所述聚合根为根节点,以所述候选聚合对象为子节点,根据所述候选聚合对象与所述聚合根之间的所述聚合关系类型,建立树形聚合模型。6.根据权利要求5所述的一种基于关系的聚合建模方法,其特征在于,在所述建立树形聚合模型之后,还包括:
...

【专利技术属性】
技术研发人员:刘吉源
申请(专利权)人:北京十六进制科技有限公司
类型:发明
国别省市:

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

1