【发布时间】:2013-04-24 09:26:18
【问题描述】:
我最近在学习 DDD,但不太了解这些概念。我对示例博客应用程序有一些疑问。
假设博客系统中有四个域对象:User、Blog、Post 和Comment。一个User 只能有一个Blog,一个Blog 有多个Post 实体,一个Post 有许多Comment 实体。
我的设计是Blog 是聚合根:
class Blog {
private User;
private List<Post> posts;
}
class Post {
private List<Comment> comments;
}
class BlogRepository {
public void saveBlog(Blog blog);
public void findBlogById(long id);
public void getAllBlogs();
}
这样设计聚合根和存储库是否正确?
我有一些要求来获取用户为所有Blog 实体添加的所有Comment 实体,并且允许User 修改她/他自己的Comment。
我的问题是如何实现这些要求?
【问题讨论】:
-
尽量避免考虑任何领域建模,例如设计数据库模式。 1 对 1 或 1 对多关系是典型的关系数据库思维。他们在 DDD 中没有位置。