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


    这个实例主要说明一个论坛发帖与回复的场景。

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

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

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

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

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

    为了保证规则的一致性,可以通过领域服务或应用层服务协调来保证。

     

    欢迎加入QQ讨论群:309287205

  • 相关阅读:
    MQTT初步使用
    越简单越喜欢
    大端小端
    Chapter 21_5.2 tab扩展
    Chapter 21_5.1 URL编码
    Chapter 21_5 替换
    插件api
    怎么找到一个好名字idea插件开发
    Struts2 maven项目简单案例
    javassist_1 cannot be cast to jaassist.util.proxy.Proxy
  • 原文地址:https://www.cnblogs.com/malaoko/p/4994678.html
Copyright © 2020-2023  润新知