尽可能引用其他类(对象)或使用其他类的值来设计类



让我们以一个简单的博客应用程序为例。给定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
}
  1. 如果我不使用任何ORM框架会有什么不同吗?
  2. 如何决定何时选择哪一个?
  3. 这里BlogPost不知道Comment的任何事情,如果它知道呢?

可能是我所采取的例子是太琐碎,我将感激如果一个更好的非琐碎的例子帮助。

谢谢。

我建议BlogPostComment是一对多的关系。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
}

最新更新