您的位置:首页 > 其它

领域驱动设计之聚合与聚合根实例二

2015-11-25 14:58 295 查看
这个实例主要说明一个论坛发帖与回复的场景。

一般大家的理解是回复必须依赖与帖子,并且回复是没有单独存在的必要,并且帖子与回复通常具有一些不变性约束规则,比如发布一个回复,在帖子中同时增加一次回复次数;回复过的帖子就不再允许删除等,所以一般理解是帖子与回复属于一个聚合,帖子是聚合根,回复是聚合中的一个实体。如下:



虽然满足了聚合与聚合根的划分的基本要求,但是还应该从两个方面来考虑:

1.性能:如果帖子与回复同属一个聚合,如果要对一个帖子添加回复,必须从聚合根帖子进行操作,并且同时保存整个聚合。如果一个帖子被多个人回复,那就存在并发的问题,性能会比较差。

2.场景:发布帖子与发布回复应该是两个独立的场景,也就是发布一个帖子后可以没有回复,回复可以是后期任意时刻的一个操作。

鉴于此,建议的聚合与聚合根的划分如下:



为了保证规则的一致性,可以通过领域服务或应用层服务协调来保证。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: