领域驱动设计(DDD)理解(持续更新...)

应用服务:可以理解为科室A。

聚合:可以理解为小组。聚合1(小组1)、聚合2(小组2)、聚合3(小组3)。

组长是聚合根实体,组员是实体。

和其他聚合交流(调用),要先通过组长(聚合根实体),组长来找到组员(一般实体)。

每个组员可以自己提供领域服务,也可以和其他组员合作领域服务(跨实体领域服务)。

尽量不要跨聚合。比如小组1的组员和小组2的组员合作提供领域服务1,这样会导致聚合1(小组1)、聚合2(小组2)产生耦合。

比如在领域服务1中,小组1组员和小组2组员产生了联系,小组1组员改动,小组2组员就也要改,小组2聚合就要改。这就耦合了,不太好。

每个小组(聚合)分别提供自己领域的若干领域服务,科室A(应用服务)来组合编排,形成科室A的微服务,对外提供。

科室A(应用服务)可以跨小组(聚合)编排领域服务。

科室A就是一个包含三个聚合(三个小组)的限界上下文。在科室A内部,用同一种业务语言沟通。科室A作为应用服务,组合三个小组的领域服务,向外提供科室A微服务。

等有一天,小组1觉得需要独立了,就把聚合1拆出来,作为独立的限界上下文,形成另一个微服务。这个微服务的领域层只有聚合1一个聚合。

所以聚合是DDD中,可以说最重要的概念。

聚合是可以单独拆出来,成一个独立的领域模型(领域层),然后结合通用的用户接口层、基础层、应用层,成为一个可以独立部署的微服务(软件包)的。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值