【发布时间】:2009-04-29 16:34:48
【问题描述】:
假设我们在域模型中有两个聚合根:组和用户。
现在,可以将用户添加到组或从组中删除。使用存储库模式,到目前为止我只建模了以下两个接口:
interface IGroupRepository
{
Group FindById(int groupId);
}
interface IUserRepository
{
User FindById(int userId);
IQueryable<User> GetGroupMembers(int groupId);
void AddUserToGroup(User user, Group group);
void RemoveUserFromGroup(User user, Group group);
}
不知何故,感觉不对。我想实现一个干净的域模型,而不仅仅是一个数据访问层。对上述情况进行建模的更好方法是什么?
编辑:这里的根本问题似乎是,DDD 的指导方针是否可以将 User 视为“子对象”,同时它也是聚合根?据我了解 DDD,它指出聚合根只能从一个地方(存储库)检索和存储,所以这就是我有点困惑的原因。
【问题讨论】:
标签: c# design-patterns domain-driven-design