![]() |
1
1
所有顶级实体都是聚合根。在你目前的设计中
ARs应该设计得尽可能小,因为它们防止对它们保护的数据进行并发修改。为了从AR模式中获益,您必须努力将AR视为事务边界,因此在大多数用例中,每个事务只能修改一个AR(可能有例外)。但是,在创建ARs时,该规则不适用,因为在创建时并发冲突不应该很常见。 这里有两个很明显的潜在设计,正确的设计取决于实际的业务不变量和您想要做出的妥协。
注:我建议去掉“实体”等技术前缀。语言是DDD的关键,我怀疑领域专家在他们的语言中使用“用户实体”(甚至可能不使用“用户”)或“设置感知”一词。 |
![]() |
2
1
这取决于它是否是新用户。 如果它是一个现有用户,一种方法是使用一个存储库来“水合”用户和存储设置。然后修改。 如果是新用户,可以使用工厂来实例化聚合根(用户实体),并使用符合UL的工厂方法从输入生成设置。 一旦拥有了用户对象,就将其发送到存储库进行持久化。 |
![]() |
Karlo · PHP Sqlite PDO最新版本 4 月前 |
![]() |
Malte · 检查远程服务器上是否存在文件(使用PHP)[关闭] 4 月前 |
![]() |
Bard.Mus · 迁移后的数据库字符集环境 4 月前 |