首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >聚合根和聚合根是否作为单独的类实现?

聚合根和聚合根是否作为单独的类实现?
EN

Stack Overflow用户
提问于 2020-08-19 13:36:57
回答 1查看 363关注 0票数 1

有了这么多关于DDD的讨论,我希望能够找到很多如何实现这些模式的代码示例。但没那么幸运。

让我困惑的是这个。是聚合类型的实体,表示为聚合根,还是那些实现为单独的类?这里有几个例子,如果其中任何一个是真的,请回答。

  1. 他们是分开的班级
代码语言:javascript
复制
class Aggregate {
   private Entity aggregateRootEntity;
   //methods that keep invariants
}
  1. 没有单独的聚合类,而是表示聚合的聚合根类。
代码语言:javascript
复制
class AggregateRootEntity {
   //id, fields, value objects references, other entities references
   //methods that keep invariants
}
  1. 任何实体都可以是聚合,如果它用于事务范围,保持不变量,并“聚合”一些值对象。
代码语言:javascript
复制
//This is aggregate:
class Entity {
   private List<ValueObject> valueObjects;
   //id, fields
   //methods that keep invariants
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-08-19 16:02:22

没有单独的聚合类,而是表示聚合的聚合根类。

这一个。

介绍DDD和“聚合”模式的参考书是Evans 领域驱动设计:解决软件核心的复杂性问题

第5章讨论了在软件领域建模中使用的模式:实体、值、“域服务”等等。

第6章讨论了生命周期管理,其中他讨论了工厂、存储库和聚合:

聚合是一组关联对象,我们将其视为用于数据更改的单元。每个聚合有一个根和一个边界。边界定义了聚合内部的内容。根是聚合中包含的单个特定实体。根是聚合中唯一允许外部对象保存引用的成员.

如果您愿意,聚合是一个对象图,它包括根对象,以及通过遍历本地引用可以从根对象到达的其他对象。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63488232

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档