我有一些网络应用程序可以放置在外部网站上。此应用程序是disqus(disqus.com)等评论的小部件。
每个评论都是一个具有字段的实体对象:“作者”,“正文”,“时间”等。 除了这些字段外,comment object还包含名为“active”的字段 那就是:
@Entity
class Comment {
private User author;
private String body;
//... and a lot of many other attributes
private boolean active;
}
用于分隔有效和已删除评论的“有效”字段。 如果“active”== false,则删除注释,如果没有激活注释。
很快我将介绍一种功能,允许预先审核评论。 即用户发布评论,但在管理员未批准之前,评论仍未激活。
所以问题是最好的方法是什么?
我看到两种方式:
1)将“active”字段从boolean更改为int并保持comment的状态
例如:0 - 预审,1 - 有效(已批准), - 1已删除, - 2未经批准可能是其他事情......
2)保留“active”布尔字段并为状态
添加其他字段答案 0 :(得分:2)
为什么选择int
- 为什么不是enum
?
enum CommentStatus {
Deleted, Pending, Active
}
编辑:另外,尽量不要将enum
分散到整个地方。使用Comment类作为健壮的模型,添加isActive()
或isPending()
的函数 - 无论是使用一个还是两个字段,还是使用枚举或int,这都是实现细节。隐藏那种嘶嘶声,哟。