什么是正确的聚合根?

Arn*_*kas 2 c# design-patterns domain-driven-design ddd-repositories repository-pattern

我有以下数据结构:

class Post
{
    public string Title { get; set;}
    public Category Category { get; set;}
}
Run Code Online (Sandbox Code Playgroud)

请记住一个帖子总是属于一个而且只有一个类别是我的推理正确吗?

  • Category是聚合根(因为没有帖子就不能存在)
  • 应该有一个CategoryRepository(带的方法,例如GetCategoryGetPost),但不是一个PostRepository(因为Post不是汇总根)

Ada*_*lph 5

你想如何引用实例Post?是Post.Title一个唯一的标识符Post?如果是这样,那么它Post 一个有效的聚合根,你应该创建一个PostRepository检索Post给定它的实例Title.

以汽车为例.汽车必须有颜色,但是说明颜色是聚合根只是因为没有汽车就不能存在,这是错误的.我想独立引用一辆车,因为它的牌照号码(与其颜色无关).它必须具有颜色这一事实只是我的汽车领域模型的一个特征,它表明我不能在不提供颜色的情况下构建汽车实例.