【发布时间】:2021-01-01 23:50:53
【问题描述】:
我最近正在学习 DDD,并在建模文章类别中苦苦挣扎。文章管理系统的逻辑如下。
我们有一个可以管理文章的系统。每篇文章可以属于多个分类,一个分类可以有多篇文章。
class Category: IValueObject
{
public string Name { get; set; }
public string Description { get; set; }
}
class Article: IAggregateRoot
{
public int Id { get; set; }
public string Title { get; set; }
public string Content { get; set; }
public IEnumerable<Category> Categories { get; set; }
}
阅读文章和书籍后,我很困惑Category应该建模什么类型的域模型。似乎将其建模为值对象或聚合根是合理的。
对于值对象,我觉得 Category 是由 Name 属性标识的。如果两个类别具有相同的名称,则可以肯定地说它们是同一类别。此外,类别是文章的属性,因此留在文章的域中可能会很好。
对于聚合根,我正在考虑为 CRUD 类别提供一个独立的网页,包括将一篇文章分配给类别管理页面中的一个类别,而不是在文章详细信息页面中(我们可以在其中更新文章的内容和属性) .似乎将 Category 建模为 value 对象将无法实现这一点。
我能得到一些建议吗?谢谢
【问题讨论】: