创建与管理领域对象

领域对象设计包含:聚合、聚合根、实体对象、值对象的设计。其中,对象信息包含对象属性、对象关系、对象行为。本文为您介绍如何通过面板创建领域对象,以及编辑、删除等操作;您也可以使用领域对象设计器完成上述操作。

前提条件

新建领域对象

  1. 登录BizWorks,在选择平台下拉列表中选中建模平台image.png

  2. 单击页面右上角a7.png图标或其文本框区域,在下拉列表中单击目标项目名称后,单击建模页签。在建模导航栏中,选择技术建模 > 限界上下文

  3. 限界上下文页面,单击目标限界上下文名称。

  4. 在目标限界上下文导航栏中,单击领域对象

  5. 领域对象页面,新建领域对象。

    1. 单击新建领域对象image.png

    2. 新建领域对象面板,完成基本信息设置。1

      表 1. 基本信息

      参数

      说明

      对象名称

      自定义领域对象名称。名称长度不得超过100个字符。

      编码

      英文字母和数字的组合,长度不得超过80个字符,需以大写字母开头,且在限界上下文内唯一。

      对象类型

      在下拉列表中选择实体对象值对象

      聚合根

      选中该参数,将当前领域对象设置为聚合根。

      说明
      • 如果对象类型选择实体对象,则默认选中聚合根

      • 如果对象类型选择值对象,则不显示该参数。

      描述

      领域对象描述信息,非必填。

      完成后您可单击创建,保存对象基本信息,然后单击对象的操作栏编辑进行后续操作;也可以直接执行下一个步骤,当领域对象的全部内容设置完成后再保存。

    3. 单击对象属性页签,单击添加对象属性,完成以下信息配置。1

      表 2. 领域对象属性

      参数

      说明

      字段名称

      自定义领域对象属性的名称。

      编码

      英文字母和数字的组合,长度不得超过80个字符,需以小写字母开头,且在领域对象内唯一。

      数据类型

      通过下拉列表选择:

      • 基本类型:String、Integer、Boolean等。

      • 集合类型:List<基本类型或对象类型编码>、Set<基本类型或对象类型编码>、Map<基本类型或对象类型编码>。

        • List和Set集合类型支持嵌套。image.png

        • Map集合类型中KeyValue支持自定义,但不支持Map的嵌套。 1

      • 对象类型:本限界上下文中已创建且保存的领域对象类型。

      • 新建领域对象:您可以新建领域对象将其配置为对象属性数据类型

      描述

      领域对象属性描述信息,非必填。

      添加完成后,可在对象属性页签下查看属性列表,并可以编辑或删除。image

      将鼠标悬浮至图标image位置,界面会显示对象属性已关联的关系信息。

    4. 单击对象行为页签,单击添加对象行为,完成以下信息配置。1

      表 3. 对象行为参数

      参数

      说明

      行为名称

      自定义对象行为的名称。

      编码

      英文字母和数字的组合,长度不得超过80个字符,需以小写字母开头,且在领域对象内唯一。

      描述

      领域对象行为描述,非必填。

      行为入参

      单击添加按钮,设置行为入参。入参可创建多个。入参说明请参见行为入参

      行为出参

      单击添加按钮,设置行为出参。出参最多仅可设置一个。如不设置,返回值为void

      表 4. 行为入参

      参数

      说明

      参数名称

      自定义行为入参名称。

      编码

      英文字母和数字的组合,长度不得超过80个字符,需以小写字母开头,且在领域对象行为级唯一。

      参数类型

      通过下拉列表选择:

      • 基本类型:Boolean、Byte、Short等。

      • 集合类型:List<基本类型或对象类型编码>、Set<基本类型或对象类型编码>、Map<基本类型或对象类型编码>。

      • 对象类型:本限界上下文中已创建且保存的领域对象类型。

      • 新建领域对象:您可以新建领域对象将其配置为行为入参参数类型

      必填

      选中后,该参数为必填参数。

      描述

      行为入参描述,非必填。

      配置完成后,可在对象行为页签下查看行为列表,并可以编辑删除

    5. 单击对象关系页签,单击添加领域对象关系操作1领域对象关系对话框中,配置以下信息,并单击确定image.png

      表 5. 领域对象关系

      参数

      说明

      关系类型

      在关系类型下拉框选择关联聚合组合继承。关于对象关系设置规则,请参见对象关系设置规则表

      关系重数

      在下拉框选择1 : 0..*1 : 1..*1 : 0..11 : 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

      关联

      适用

      适用

      适用

      适用

      聚合

      适用

      适用

      适用

      适用

      组合

      适用

      适用

      适用

      适用

      继承

      不适用

      不适用

      不适用

      不适用

      配置完成后,可在对象关系页签下查看关系列表,并可以编辑删除

  6. 完成相关配置后,单击创建

编辑领域对象

  1. 在领域模型列表中,单击目标领域对象右侧操作列下的编辑

  2. 编辑领域对象面板,修改配置信息后,单击保存

删除领域对象

  1. 在领域模型列表中,单击目标领域对象右侧操作列下的删除

  2. 在二次确认对话框中,单击删除

复制领域对象到其他限界上下文

  1. 在领域模型列表中,单击目标领域对象右侧操作列下的复制到其它限界上下文image.png

  2. 对象复制到目标限界上下文面板,完成相关配置项设置。image.png

    • 目标限界上下文下拉列表中选择目标限界上下文,在其版本列表中选择目标限界上下文版本。

    • 设置重复数据规则。重复数据处理策略支持跳过重复数据覆盖已有数据终止生成数据

      配置项

      说明

      跳过重复数据

      • 生成结构对象和数据模型时,如果编码已经存在,则结构对象和数据模型的名称、编码以及所有的字段都不做任何修改。

      • 生成应用服务时,如果服务编码已存在,服务本身信息不做修改,并继续判断方法是否存在,如果方法编码也相同则不再判断出入参,该方法将不再重复生成。

      覆盖已有数据

      • 编码相同的数据将被覆盖,包括名称和类型。

      • 不在生成范围内的数据不受影响,将被保留。

      终止生成数据

      只要应用服务、应用服务方法、结构对象或者数据模型中有任何一个编码与已有数据编码重复,则任何数据都不会生成,生成过程将自动终止。

    说明
    • 复制领域对象到其他限界上下文:将领域模型中所选的领域对象,复制到下拉框中所选目标限界上下文的领域模型中。

    • 复制的领域对象信息包含对象的模型名称、编码、对象类型的属性。

    • 目标限界上下文下拉列表中所选择的目标限界上下文,不支持选择当前对象所在的限界上下文。

    • 复制过程中,当对象的编码有重复时,您可以根据配置选择复制动作的重复数据处理策略。

导入业务对象

  1. 领域对象页面,单击导入业务对象

  2. 批量导入面板,选中目标业务对象名称(支持多选),完成后单击下一步

    • 您可以从限界上下文所关联的业务领域下,选择合适的业务对象导入。image.pngimage.png

    • 在业务领域如何关联业务对象,具体操作,请参见关联或解绑业务对象分类

  3. 设置导入规则。重复数据处理策略支持跳过重复数据覆盖已有数据终止生成数据

    配置项

    说明

    跳过重复数据

    生成对象时,如果编码已存在,则跳过该项继续生成下一个对象。

    覆盖重复数据

    生成对象时,如果编码已存在,则更新重复的数据。即:更新对象名称、更新属性、更新行为、新增目标对象没有的属性和行为,不做数据删除。

    删除并新建

    在生成对象时,如果编码已存在,则删除已编码重复的对象,并新建对象。

    说明
    • 对象名称:业务对象名称。

    • 对象编码:业务对象编码。

    • 对象类型:实体对象。

    • 对象属性:初始导入与业务对象属性保持一致,重复导入则根据导入规则配置执行。

    • 对象属性类型:业务对象属性文本类型导入成为String、数字类型导入成为Integer,时间导入成为Date。

    • 对象行为:初始导入与业务对象行为保持一致,重复导入则根据导入规则配置执行。

  4. 单击导入