󰅡收起

文贺

03
8月

领域模型

作者: 文贺
发布时间: 2021-08-03 11:43

1、简介

为了更好落地复杂业务,我们按照 DDD 的方法论把业务抽象成领域概念,把业务属性变成领域属性,把业务能力变成领域行为,并且通过流程的串联来完成业务的扭转。

2、使用姿势

2.1 新建实体

实体由唯一标识、属性和行为组成,可在页面上进行新建,新建时系统会自动带上 8 个默认字段:数据库唯一表示、业务唯一表示、名称、描述、租户、是否可用、创建时间和更新时间。

新建实体图

2.2 新建聚合

聚合有两种形式:一种是实体本身就是聚合,该实体聚合起关联的实体;一种是不把实体看作聚合,实体和实体之间的关系交给三方聚合对象来管理,酒窝支持这两种落地方式,案例展示如下:

1、商品实体聚合的对象为:SKU 实体集合 + 后台类目实体 + 库存实体集合

商品实体聚合图

2、订单明细聚合,用来管理订单实体和订单明细实体一对多的关系

订单明细聚合图

2.3 新建值对象

值对象是对实体或聚合的复杂信息的描述,可以在实体和聚合内部进行新建,下图是订单实体的价格信息值对象,是对订单实体的价格描述。

订单实体的价格值对象图

2.4 新建应用服务

应用服务在酒窝系统中是个虚拟的接口,可把实体、聚合作为应用服务的出入参。

新建实体时,系统会自动生成实体对应的增删改查应用服务。

下图是下单应用服务图解说明:

下单应用服务图

3、概念介绍

领域概念我们定义为实体、聚合、值对象、领域服务和应用服务,概念释义如下:

概念释义
实体实体是具有唯一标识的,可以表示业务连续性变化的领域元素。
聚合把领域对象聚合在一起,并维护领域对象之间的关系,我在一篇免费文章上详细地说过,说的很明白。
值对象值对象是对事物的描述,更确切的说,就是对领域对象的描述。
领域服务领域服务是一个动作,当动作挂不到领域对象上时(动作不是领域能力的时候),我们就把它叫做领域服务。
应用服务领域对外开放的边界,比如说一个 http 的接口。

󰁠

本文出自 文贺 ,未经同意严禁转载,需要转载时请留言。

本文永久链接: https://wenhe.online/?p=4819

发表评论