Android - Couchbase lite - DAO - MyClass 扩展了文档



我正在使用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;
}
}

我不建议扩展文档。 相反,要么只使用地图,要么使用类似杰克逊JSON库的东西来创建POJO。 我通常会创建一个简单的帮助程序类来包装数据库操作(包括复制,如果您使用它(。

在我的头顶上,我不会这样做,因为子类不适合您检索文档的某些方式,文档是一些重量级的对象,并且首选的更新方式考虑到冲突的可能性,这将更加困难。 (有关最后一点的讨论,请参阅此博客文章。

我从未尝试过以子类化方法解决这些问题,但似乎可以肯定的是,这比它的价值更痛苦。

最新更新