zoukankan      html  css  js  c++  java
  • 领域驱动设计之聚合与聚合根实例二

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

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

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

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

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

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

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

     

    欢迎加入QQ讨论群:309287205

  • 相关阅读:
    话说 SVN 与 Git 之间的区别
    CentOS 7 之安装 Oracle 11gR2
    @meda媒体查询
    为样式找到应用目标-CSS选择器
    JQuery和原生JavaScript实现网页定位导航特效
    CSS代码缩写
    认识CSS样式
    文档类型、DOCTYPE切换和浏览器模式
    MIME 参考手册
    微格式(microformat)
  • 原文地址:https://www.cnblogs.com/malaoko/p/4994678.html
Copyright © 2011-2022 走看看