域驱动设计 – 聚合根
我正在努力与聚合和聚合根.我有一个天然的聚合根,用于大约60%的用户请求.即这些请求自然地适用于聚合根.
在我的集合中,我有另一个实体,只能作为总根的成员存在.然而,用户将被告知有关该其他实体对象.有时在概念上有意义的是,用户可以直接在这个非聚合根对象上操作. 所以,我想我有几个选择: >根据用户请求的操作,它们都可以是聚合根. 请注意,顶层聚合根将保存此另一实体的集合. 例: 主要聚集根:汽车 第二个实体:座位(一个汽车根据类型有2或4个座位).在我的域名位置只能作为汽车的一部分存在. 域中的大多数操作都在汽车级别.那么这将是一个很好的候选人.但是,(我正在努力争取这里的例子),一些操作将在座位上,例如SpillCoffee,ChangeFabric,Clean …. 座椅和汽车都可以作为根基?还是应该从汽车开始? 谢谢
聚合的思想是保证一致性,作为数据完整性和强制不变量的根源.
假设有一个规则,如“所有座位的面料必须一样”,或者“你只能在车内有人喝咖啡就坐在座位上”,一旦客户将被执行,这将更加难以实现能够单独更换织物,否则这些不变量将需要被强制外部(危险区域). 如果完整性或强制不变量不是一个问题,那么IMHO就不需要集合.但是,如果有必要,我的建议是用车开始一切.但总是想到模型.如果有这样的不变量,那么谁执行这些不变量?然后尝试将这个想法传递给代码,一切都应该是好的. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |