假設我們在域模型中有兩個聚合根:組和用戶。DDD:如何建模添加和刪除相關實體?
現在,可以將用戶添加到組或從組中刪除。使用存儲庫模式,我目前只建模了以下兩個接口:
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的指導方針是否將用戶視爲「子對象」,同時它也是一個聚合根?正如我對DDD的理解,它指出只能從一個地方(存儲庫)檢索和存儲聚合根,這就是爲什麼我有點困惑。
NHibernate的信息現在可以在http://nhforge.org/找到 - 舊的網站已經下來了,而現在 – 2009-04-29 08:18:59
是不是這種方法處理的用戶不作爲一個聚合根?我很困惑 順便說一句,我不在乎堅持尚未 - 只是尋找一般設計模式 – JacobE 2009-04-29 08:19:53