C# 如何在域模型中识别聚合根?
涉猎领域驱动设计时,我遇到了一个关于如何在我的领域模型中识别聚合根的情况 我有以下三个课程,模拟一个简单的待办事项列表:C# 如何在域模型中识别聚合根?,c#,domain-driven-design,aggregateroot,C#,Domain Driven Design,Aggregateroot,涉猎领域驱动设计时,我遇到了一个关于如何在我的领域模型中识别聚合根的情况 我有以下三个课程,模拟一个简单的待办事项列表: public class List { private IList<Task> _tasks; public List() { ... } public string Name { get; set; } } public IEnumerable<Task> Tasks() { ... } public vo
public class List {
private IList<Task> _tasks;
public List() { ... }
public string Name { get; set; } }
public IEnumerable<Task> Tasks() { ... }
public void AddTask(string descr) { ... }
public void RemoveTask(Task t) { ... }
public Task GetRandomTask() { ... }
}
public class Task {
private IList<Update> _updates;
public Task(string descr) { ... }
public string Description { get; }
public bool IsClosed { get; }
public IEnumerable<Update> Updates() { ... }
public void AddUpdate(string descr, bool close) { ... }
}
public class Update {
public Update(string descr) { ... }
public string Description { get; }
}
公共类列表{
私人IList_任务;
公共列表(){…}
公共字符串名称{get;set;}}
公共IEnumerable任务(){…}
public void AddTask(字符串描述){…}
公共void RemoveTask(任务t){…}
公共任务GetRandomTask(){…}
}
公开课任务{
私有IList_更新;
公共任务(字符串描述){…}
公共字符串描述{get;}
公共图书馆已关闭{get;}
公共IEnumerable更新(){…}
public void AddUpdate(string descr,bool close){…}
}
公共类更新{
公共更新(字符串描述){…}
公共字符串描述{get;}
}
我可以就模型说明以下内容:
提前感谢。在我看来,在这种情况下,您可以有1个或2个聚合。这完全取决于你在列表中的任务是否很大;以及您的更新是否会很大 如果任务或更新不会大量增加,那么一个聚合
根目录(列表)
就可以了
否则,您可以将它们分为两个聚合
root(列表,任务)
其中列表
可以添加任务
和任务
可以添加更新
。我认为识别聚合的最佳方法是或。相关问题:。沃恩·弗农有一个关于聚合的设计,可能会对您的问题有所帮助-