【DDD】学习笔记-聚合的设计过程

魏国的丁厨师给魏惠王介绍他如何解牛:解牛时,需得顺着牛体天然的结构,击入大的缝隙,顺着骨节间的空处进刀。由于牛体的骨节有空隙,而屠刀的刀口却薄得像没有厚度,于是我以无厚入有间,没有厚度似的刀口在有空隙的骨节中,真可以说是游刃有余。每当遇到筋骨交错聚结的地方,我看到它难以处理,就会怵然为戒,目光更专注,动作更缓慢,用刀更轻柔,结果它霍地一声剖开了,像泥土一样散落在地上。

丁厨师的解牛技巧可以总结为:

  • 杀牛前,需要理清牛体的结构
  • 刀薄且快
  • 找到骨节的空隙至为关键
  • 若遇筋骨交错聚结之处,需谨慎用刀

经过领域分析模型转换而来的对象图就是一头牛,聚合是刀,且是一把没有厚度的刀。设计者该当像丁厨师那般解对象图:

  • 需弄清楚对象图的结构
  • 聚合为边界,乃无厚度之刀
  • 寻找关系最薄弱处下刀,以无厚入有间
  • 若依赖纠缠不清,当谨慎使用聚合

这实际上就是高质量设计聚合的基本过程:

  • 第一步:弄清楚对象图的结构。可以以细化后的领域分析模型作为领域设计模型对象图,理清它们之间的关系,辨别类为实体还是值对象,并保证类关系的单一导航方向。
  • 第二步:以关系强弱为界,以聚合边界为刀,逐一分解。仅仅将具有继承关系与合成关系的类放入聚合边界内,其余类则一刀解开,各自为独立的聚合。
  • 第三步:怵然为戒,谨慎设计聚合。针对聚合边界模糊的地方,运用聚合设计原则做进一步推导。

这个过程可戏称此为聚合设计的<

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码农丁丁

你的认可是我创作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值