让我们以一个简单的博客应用程序为例。给定BlogPost
类
public class BlogPost {
private long postId;
private String postTitle;
private LocalDateTime postedDate;
//BlogStatus is an enum
private BlogStatus postStatus;
//Getters/Setters
}
下面哪一个会是一个更好的设计,为什么?
public class Comment {
private long commentId;
private long blogPostId;
private LocalDateTime commentDateTime;
private long repliedToCommentId;
private String commentText;
//Getters/Setters
}
或
public class Comment {
private long commentId;
private BlogPost blogPost;
private LocalDateTime commentDateTime;
private Comment commentedFor;
private String commentText;
//Getters/Setters
}
- 如果我不使用任何ORM框架会有什么不同吗?
- 如何决定何时选择哪一个?
- 这里
BlogPost
不知道Comment
的任何事情,如果它知道呢?
可能是我所采取的例子是太琐碎,我将感激如果一个更好的非琐碎的例子帮助。
谢谢。
我建议BlogPost
和Comment
是一对多的关系。Comment
也有对BlogPost
的引用和Comments
的列表(例如,保存对评论的响应)。所以你的第二种方法更接近我的想法:
public class Comment {
private long commentId;
private BlogPost blogPost;
private LocalDateTime commentDateTime;
private Comment commentedFor;
private List<Comment> reponses;
private String commentText;
//Getters/Setters
}