加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

域驱动设计 – 聚合根

发布时间:2020-12-14 00:46:49 所属栏目:百科 来源:网络整理
导读:我正在努力与聚合和聚合根.我有一个天然的聚合根,用于大约60%的用户请求.即这些请求自然地适用于聚合根. 在我的集合中,我有另一个实体,只能作为总根的成员存在.然而,用户将被告知有关该其他实体对象.有时在概念上有意义的是,用户可以直接在这个非聚合根对象
我正在努力与聚合和聚合根.我有一个天然的聚合根,用于大约60%的用户请求.即这些请求自然地适用于聚合根.

在我的集合中,我有另一个实体,只能作为总根的成员存在.然而,用户将被告知有关该其他实体对象.有时在概念上有意义的是,用户可以直接在这个非聚合根对象上操作.

所以,我想我有几个选择:

>根据用户请求的操作,它们都可以是聚合根.
>所有操作必须通过顶层聚合根.

请注意,顶层聚合根将保存此另一实体的集合.

例:

主要聚集根:汽车

第二个实体:座位(一个汽车根据类型有2或4个座位).在我的域名位置只能作为汽车的一部分存在.

域中的大多数操作都在汽车级别.那么这将是一个很好的候选人.但是,(我正在努力争取这里的例子),一些操作将在座位上,例如SpillCoffee,ChangeFabric,Clean ….

座椅和汽车都可以作为根基?还是应该从汽车开始?

谢谢

聚合的思想是保证一致性,作为数据完整性和强制不变量的根源.

假设有一个规则,如“所有座位的面料必须一样”,或者“你只能在车内有人喝咖啡就坐在座位上”,一旦客户将被执行,这将更加难以实现能够单独更换织物,否则这些不变量将需要被强制外部(危险区域).

如果完整性或强制不变量不是一个问题,那么IMHO就不需要集合.但是,如果有必要,我的建议是用车开始一切.但总是想到模型.如果有这样的不变量,那么谁执行这些不变量?然后尝试将这个想法传递给代码,一切都应该是好的.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读