业务中台是基于DDD方法论进行实践并抽象出来的一种企业应用架构。项目的建模过程主要由技术建模构成。本文介绍示例项目中技术建模的相关内容。
背景信息
技术建模包括限界上下文划分、领域模型、数据模型、服务模型等内容,主要目的是能够基于DDD的建模方法论将业务模型转化成技术模型,从而能高效指导中台应用的开发。更多信息,请参见技术建模。
限界上下文
示例项目中预置了两个限界上下文:商品上下文和用户上下文,且两个限界上下文中都包含简单的领域模型、数据模型和应用服务,这两个限界上下文仅作为示例参考,并未覆盖完整的业务设计。本文以用户上下文为例介绍限界上下文,帮助您了解BizWorks中各种对象的定义与使用方法。
在示例项目的限界上下文页面,您可以看到系统自动创建的两个限界上下文(商品上下文和用户上下文)。单击用户上下文名称后,查看v1.0.0版本的内容,具体如下图所示:
更多信息,请参见创建与管理领域对象。
领域模型
在用户上下文v1.0.0版本的领域对象页面,单击领域模型设计器,在模型设计器页面您可以通过可视化方式查看模型情况。用户上下文的领域模型中包含三个对象,分别是用户(实体对象、聚合根)、账号(实体对象)、地址(值对象)。具体如下图所示:
更多信息,请参见使用领域模型设计器。
领域模型之间的关系可以在模型设计器中快速编辑,目前领域对象间的关系支持关联、聚合、组合与继承。
对象关系 | 1 : 0..* | 1 : 1..* | 1 : 0..1 | 1 : 1 |
关联 | 适用 | 适用 | 适用 | 适用 |
聚合 | 适用 | 适用 | 适用 | 适用 |
组合 | 适用 | 适用 | 适用 | 适用 |
继承 | 不适用 | 不适用 | 不适用 | 不适用 |
更多领域对象关系信息,请参见领域对象关系。
数据模型
在用户上下文v1.0.0版本的数据模型页面,单击数据模型设计器,在数据模型设计器页面您可以通过可视化方式查看数据模型信息。用户上下文的数据模型与模型间关联关系如下:
更多信息,请参见使用数据模型设计器。
数据模型中支持如下字段,模型间的关系可以通过引用字段来设置。例如地址是用户对象的补充信息,地址和用户对象之间存在关联关系。那么地址表中用户ID的字段类型需要选择为Reference(引用),并且引用对象需要选择为用户数据模型中的userId,具体如下图所示:
数据模型中目前支持的字段类型如下:
参数 | 说明 |
字段名称 | 自定义字段的名称。 |
编码 | 英文字母和数字的组合,长度不得超过80个字符,需以小写字母开头,在数据模型中唯一。 |
表字段名 | 系统会根据数据模型编码自动生成表字段名,表名用于生成DDL脚本。如果您需要修改生成规则,可以返回数据模型列表页面,单击设置表信息生成规则,在设置表信息生成规则面板更改设置。 |
字段类型 | 文本类:Text(文本)、LongText(长文本)。可选择该字段是否为主键、是否必填、是否唯一,并设置默认值。 说明 如果某个字段被设置为主键,则唯一和必填都会自动被选中。 |
日期类:Date(日期)、DateTime(日期时间)、Timestamp(时间戳)。该类型字段不支持作为主键,并且默认值只能选择固定的日期,不能使用Today()等相对时间或使用函数。 说明 设置默认值不会影响代码生成和数据库DDL语句。 | |
整数数值类:Integer(整数)、Long(长整型)。可选择该字段是否为主键、是否必填、是否唯一,并设置默认值。 | |
小数数值类:Double(小数)、Decimal(高精小数)。该类型不支持作为主键,并且需要填写小数位数。 | |
Boolean(布尔):支持取值True和False。 | |
Reference(引用):选择该类型后需要选择关联的表和字段,该引用字段的实际类型与关联字段的类型相同。其中,关联的表是当前版本限界上下文已经保存的数据模型,关联字段是关联表内的字段。 | |
Sequence(序列):自增长序列,默认为Long类型,必填且唯一,可设置为主键,需要设置初始值。 |
更多信息,请参见创建与管理数据模型。
应用服务
应用服务的结构对象如同常用的DTO对象,已定义的结构对象可以作为应用服务方法的出入参使用。示例项目的用户上下文中定义了账号、用户基础信息结构对象、用户身份验证结构对象等结构对象,其中用户基础信息结构对象和用户身份验证结构对象用于在用户信息获取、用户登录验证接口中作为出入参使用。
更多信息,请参见创建和管理结构对象。
应用服务可按照业务分类去定义同类型的应用服务方法,用户上下文中定义了用户服务、账号服务和地址服务。例如:用户服务可用于定义用户信息获取、更新等服务,账号服务提供了各种登录认证服务。
更多信息,请参见创建和管理应用服务。