让我们举一个简单的Blogging应用程序的例子。给定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
}
OR
public class Comment {
private long commentId;
private BlogPost blogPost;
private LocalDateTime commentDateTime;
private Comment commentedFor;
private String commentText;
//Getters/Setters
}
BlogPost
对Comment
一无所知,如果知道该怎么办?可能是我所采取的例子太琐碎,如果一个更好的非平凡的例子有帮助,我将不胜感激。
三江源。
答案 0 :(得分:0)
我建议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
}