【问题标题】:Android - Couchbase lite - DAO - MyClass extends DocumentAndroid - Couchbase lite - DAO - MyClass 扩展文档
【发布时间】:2017-08-18 08:47:16
【问题描述】:

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

【问题讨论】:

    标签: android design-patterns dao couchbase-lite


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多