Android - Couchbase lite - DAO - MyClass扩展了Document

时间:2017-08-18 08:47:17

标签: android design-patterns dao couchbase-lite

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

1 个答案:

答案 0 :(得分:1)

我不建议扩展文档。相反,要么只使用地图,要么使用像Jackson JSON库这样的东西来创建POJO。我通常创建一个简单的帮助器类来包装数据库操作(包括复制,如果你正在使用它)。

在我的头脑中,我不会这样做,因为子类化不适合你检索文档的一些方法,文档是一些重量级的对象,以及更新的首选方式考虑到冲突的可能性,这将更加困难。 (有关最后一点的讨论,请参阅this blog post。)

我从来没有试图在子类化方法中解决这些问题,但似乎确定更痛苦而不是它的价值。