我正在使用Couchbase lite处理Android应用程序。
我应该将课程延长com.couchbase.lite.Document
吗?
优点:DAO已融入课堂。
缺点: - 每个对象都链接到一个文档,如果我们想要一个新对象,我们必须在couchbase中创建一个新文档? - 其他什么?
例如:
public class UserProfile extends Document {
public UserProfile (Database database, String documentId);
public Map<String, Object> getProperties();
public boolean isModified();
public boolean update() throws CouchbaseLiteException {
if (isModified()) {
super.putProperties(getProperties());
return true;
}
else
return false;
}
}
答案 0 :(得分:1)
我不建议扩展文档。相反,要么只使用地图,要么使用像Jackson JSON库这样的东西来创建POJO。我通常创建一个简单的帮助器类来包装数据库操作(包括复制,如果你正在使用它)。
在我的头脑中,我不会这样做,因为子类化不适合你检索文档的一些方法,文档是一些重量级的对象,以及更新的首选方式考虑到冲突的可能性,这将更加困难。 (有关最后一点的讨论,请参阅this blog post。)
我从来没有试图在子类化方法中解决这些问题,但似乎确定更痛苦而不是它的价值。