通过博客认识DDD-总结

DDD领域驱动设计实战-聚合(Aggregate)和聚合根(AggregateRoot)

一个限界上下文包含一个或多个聚合,一个聚合由一个或多个实体以及值对象组成。

一个聚合有一个聚合根,访问聚合通过根ID。

聚合内部访问实体通过引用,一个聚合访问另一个聚合使用根ID,访问另一个聚合中的实体,采用深度遍历,先访问ID,其次找引用。

聚合实体状态可以改变;聚合中的实体状态可以改变;值对象不允许改变。

包含多实体的逻辑为领域服务;包含多聚合的逻辑为应用服务。

聚合的好处:

  1. 单一职责
  2. 高内聚
  3. 低耦合

对领域建模的步骤:

  1. 分析场景、用例、用户行为
  2. 得出业务行为、与事件交互
  3. 列出所有实体
  4. 列出各聚合的实体
  5. 找到各聚合的聚合根
  6. 找到各聚合根对应的实体与值对象(聚合图)
  7. 对象引用和依赖模型

判断聚合根的依据:

  1. 是否有生命周期
  2. 是否有全局唯一ID(参考今天讨论的库存领域,混箱的话就会包含多个Item,所以Item不能作为聚合根,应该寻找分析Item的上一级,可以是一批Item需要调整的一个单据,单据作为聚合根)
  3. 是否可以创建或修改其他对象
  4. 是否有特定模块操作此实体

一个微服务可以由一个或多个聚合组成,多聚合的微服务还可以再进行更细粒度的拆分或组合。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值