【问题标题】:DDD modelling settings as Value ObjectsDDD 建模设置为值对象
【发布时间】:2021-04-07 02:16:57
【问题描述】:

我正在尝试以 DDD 方式构建应用程序。想象一下聚合根是一个“页面”,其中包含其他聚合,例如作者、评论者、评论、状态等......

一个页面也可以有各种设置,例如:

  • 私人页面
  • 允许 cmets
  • 允许匿名 cmets
  • x 日期后锁定
  • 蛞蝓

我正在尝试考虑对这些“设置”进行建模的最佳方式。目前我正在寻找一个将每个单独的设置作为值对象的设置集合。正如您所看到的,其中一些本质上是布尔值,而另一些可能包含特定值,例如日期。鉴于可能有几十个设置,其中一些具有默认值,我是使用每个特定设置对“设置”集合建模,还是仅作为具有适用设置的集合建模?

是否有“更好”或标准的 DDD 方法来解决此问题?我正在考虑在这里使用规范模式,但得出的结论是它并不真正适用

对不起第二个问题......

页面可以具有多种状态之一(例如草稿、已发布、已安排、已归档),但在给定时间只有一种状态。关于建模的最佳方法的类似问题。作为状态代表具有身份的事物,我目前已将状态实现为实体。我想知道更好的方法是将其建模为工作流还是状态历史?

【问题讨论】:

    标签: domain-driven-design modeling specification-pattern


    【解决方案1】:

    首先让我说您计划创建的聚合可能太大,请仔细检查,因为创建聚合意味着一些权衡,例如您只能从聚合根访问子实体,并且所有更改聚合是原子的。 为避免聚合过大,您可以将 AuthorId 作为页面内的 VO,而不是完整的 Author 实体。

    关于设置,据我所知,DDD 没有一些指令来设计它。但是我会尝试让一些接口的设置集合,我会为每种设置类型都有一个实现:布尔值,日期......

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-24
      • 2010-10-31
      • 2014-06-03
      • 2010-10-04
      相关资源
      最近更新 更多