领域对象设计包含:聚合、聚合根、实体对象、值对象的设计。其中,对象信息包含对象属性、对象关系、对象行为。本文为您介绍如何通过面板创建领域对象,以及编辑、删除等操作;您也可以使用领域对象设计器完成上述操作。
前提条件
当前账号拥有项目权限。
已完成限界上下文的创建。具体操作,请参见创建与管理限界上下文。
新建领域对象
登录BizWorks,在选择平台下拉列表中选中建模平台。
单击页面右上角图标或其文本框区域,在下拉列表中单击目标项目名称后,单击建模页签。在建模导航栏中,选择 。
在限界上下文页面,单击目标限界上下文名称。
在目标限界上下文导航栏中,单击领域对象。
在领域对象页面,新建领域对象。
单击新建领域对象。
在新建领域对象面板,完成基本信息设置。
表 1. 基本信息 参数
说明
对象名称
自定义领域对象名称。名称长度不得超过100个字符。
编码
英文字母和数字的组合,长度不得超过80个字符,需以大写字母开头,且在限界上下文内唯一。
对象类型
在下拉列表中选择实体对象或值对象。
聚合根
选中该参数,将当前领域对象设置为聚合根。
说明如果对象类型选择实体对象,则默认选中聚合根。
如果对象类型选择值对象,则不显示该参数。
描述
领域对象描述信息,非必填。
完成后您可单击创建,保存对象基本信息,然后单击对象的操作栏编辑进行后续操作;也可以直接执行下一个步骤,当领域对象的全部内容设置完成后再保存。
单击对象属性页签,单击添加对象属性,完成以下信息配置。
表 2. 领域对象属性 参数
说明
字段名称
自定义领域对象属性的名称。
编码
英文字母和数字的组合,长度不得超过80个字符,需以小写字母开头,且在领域对象内唯一。
数据类型
通过下拉列表选择:
基本类型:String、Integer、Boolean等。
集合类型:List<基本类型或对象类型编码>、Set<基本类型或对象类型编码>、Map<基本类型或对象类型编码>。
List和Set集合类型支持嵌套。
Map集合类型中Key和Value支持自定义,但不支持Map的嵌套。
对象类型:本限界上下文中已创建且保存的领域对象类型。
新建领域对象:您可以新建领域对象将其配置为对象属性的数据类型。
描述
领域对象属性描述信息,非必填。
添加完成后,可在对象属性页签下查看属性列表,并可以编辑或删除。
将鼠标悬浮至图标位置,界面会显示对象属性已关联的关系信息。
单击对象行为页签,单击添加对象行为,完成以下信息配置。
表 3. 对象行为参数 参数
说明
行为名称
自定义对象行为的名称。
编码
英文字母和数字的组合,长度不得超过80个字符,需以小写字母开头,且在领域对象内唯一。
描述
领域对象行为描述,非必填。
行为入参
单击添加按钮,设置行为入参。入参可创建多个。入参说明请参见行为入参。
行为出参
单击添加按钮,设置行为出参。出参最多仅可设置一个。如不设置,返回值为
void
。表 4. 行为入参 参数
说明
参数名称
自定义行为入参名称。
编码
英文字母和数字的组合,长度不得超过80个字符,需以小写字母开头,且在领域对象行为级唯一。
参数类型
通过下拉列表选择:
基本类型:Boolean、Byte、Short等。
集合类型:List<基本类型或对象类型编码>、Set<基本类型或对象类型编码>、Map<基本类型或对象类型编码>。
对象类型:本限界上下文中已创建且保存的领域对象类型。
新建领域对象:您可以新建领域对象将其配置为行为入参的参数类型。
必填
选中后,该参数为必填参数。
描述
行为入参描述,非必填。
配置完成后,可在对象行为页签下查看行为列表,并可以编辑或删除。
单击对象关系页签,单击添加领域对象关系操作。在领域对象关系对话框中,配置以下信息,并单击确定。
表 5. 领域对象关系 参数
说明
关系类型
在关系类型下拉框选择关联、聚合、组合或继承。关于对象关系设置规则,请参见对象关系设置规则表。
关系重数
在下拉框选择1 : 0..*、1 : 1..*、1 : 0..1或1 : 1。
1 : 0..*:表示对象间是“一对多”的关系,类似“1:N”,N允许为0。
1 : 1..*:表示对象间是“一对多”的关系,类似“1:N”,N最少为1。
1 : 0..1:表示对象间是“一对一”的关系(支持“一对零”或“一对一”),右侧目标对象可以没有数据。
1 : 1:表示对象间是“一对一”的关系,右侧目标对象有且仅有一条数据与左侧的对象对应。
说明继承关系不支持关系重数。详细设置逻辑,请参见对象关系多重性设置规则表。
目标对象
当前限界上下文内已创建并保存的领域对象。
关系名称
自定义领域对象关系名称。
编码
英文字母和数字的组合,长度不得超过80个字符,需以小写字母开头,且在领域对象内唯一。
描述
领域对象关系描述,非必填。
表 6. 对象关系设置规则表 场景
关联
聚合
组合
继承
领域模型A->领域模型A
允许建立,且允许创建多个。
不允许建立。
不允许建立。
不允许建立。
领域模型A->领域模型B
允许建立,且允许创建多个。
允许建立,且允许创建多个。
允许建立,且允许创建多个。
允许建立,且一个对象下只能创建一个继承关系 。
说明不可导致循环继承。如对象B继承了对象A,则对象A不能再继承对象B。或者,如对象B继承了对象A,对象C继承了对象B,则对象A不能再继承对象C;其他场景类似。
表 7. 对象关系多重性设置规则表 对象关系
1 : 0..*
1 : 1..*
1 : 0..1
1 : 1
关联
适用
适用
适用
适用
聚合
适用
适用
适用
适用
组合
适用
适用
适用
适用
继承
不适用
不适用
不适用
不适用
配置完成后,可在对象关系页签下查看关系列表,并可以编辑或删除。
完成相关配置后,单击创建。
编辑领域对象
在领域模型列表中,单击目标领域对象右侧操作列下的编辑。
在编辑领域对象面板,修改配置信息后,单击保存。
删除领域对象
在领域模型列表中,单击目标领域对象右侧操作列下的删除。
在二次确认对话框中,单击删除。
复制领域对象到其他限界上下文
在领域模型列表中,单击目标领域对象右侧操作列下的复制到其它限界上下文。
在对象复制到目标限界上下文面板,完成相关配置项设置。
在目标限界上下文下拉列表中选择目标限界上下文,在其版本列表中选择目标限界上下文版本。
设置重复数据规则。重复数据处理策略支持跳过重复数据、覆盖已有数据和终止生成数据。
配置项
说明
跳过重复数据
生成结构对象和数据模型时,如果编码已经存在,则结构对象和数据模型的名称、编码以及所有的字段都不做任何修改。
生成应用服务时,如果服务编码已存在,服务本身信息不做修改,并继续判断方法是否存在,如果方法编码也相同则不再判断出入参,该方法将不再重复生成。
覆盖已有数据
编码相同的数据将被覆盖,包括名称和类型。
不在生成范围内的数据不受影响,将被保留。
终止生成数据
只要应用服务、应用服务方法、结构对象或者数据模型中有任何一个编码与已有数据编码重复,则任何数据都不会生成,生成过程将自动终止。
说明复制领域对象到其他限界上下文:将领域模型中所选的领域对象,复制到下拉框中所选目标限界上下文的领域模型中。
复制的领域对象信息包含对象的模型名称、编码、对象类型的属性。
在目标限界上下文下拉列表中所选择的目标限界上下文,不支持选择当前对象所在的限界上下文。
复制过程中,当对象的编码有重复时,您可以根据配置选择复制动作的重复数据处理策略。
导入业务对象
在领域对象页面,单击导入业务对象。
在批量导入面板,选中目标业务对象名称(支持多选),完成后单击下一步。
您可以从限界上下文所关联的业务领域下,选择合适的业务对象导入。
在业务领域如何关联业务对象,具体操作,请参见关联或解绑业务对象分类。
设置导入规则。重复数据处理策略支持跳过重复数据、覆盖已有数据和终止生成数据。
配置项
说明
跳过重复数据
生成对象时,如果编码已存在,则跳过该项继续生成下一个对象。
覆盖重复数据
生成对象时,如果编码已存在,则更新重复的数据。即:更新对象名称、更新属性、更新行为、新增目标对象没有的属性和行为,不做数据删除。
删除并新建
在生成对象时,如果编码已存在,则删除已编码重复的对象,并新建对象。
说明对象名称:业务对象名称。
对象编码:业务对象编码。
对象类型:实体对象。
对象属性:初始导入与业务对象属性保持一致,重复导入则根据导入规则配置执行。
对象属性类型:业务对象属性文本类型导入成为String、数字类型导入成为Integer,时间导入成为Date。
对象行为:初始导入与业务对象行为保持一致,重复导入则根据导入规则配置执行。
单击导入。