我想知道是否应该将依赖对象建模为聚合根。假设我有一个TaskList
,此列表中包含Task
个。没有Task
,TaskList
不能存在,但可以单独查看和编辑。我认为,TaskList
没有特殊条件可以检查修改或添加任务的时间 - 这将是聚合根的主要原因。唯一的条件是,TaskList
及其任务只能由所有者编辑。如果TaskList
拥有所有者并且只能通过TaskList编辑任务,那么很容易确保这种情况。否则,我需要以交叉方式检测所有者或向任务添加所有者字段。
那么这里适当的是什么?
我错过了重要的事情吗?
答案 0 :(得分:1)
答案 1 :(得分:0)
我会这样做:
class TaskList{
User Owner;
Task[] Tasks;
}
class Task{
TaskList List; string Description;
void ChangeDescription(description){
if(List.Owner!=CurrentUser)
throw exception or whatever;
else
Description=description;
}
}
// http post
class TaskController{
ActionResult ChangeDescription(int id, string description){
_tasks.Find(id).ChangeDescription(description);
}
}