当前位置: 首页 > 面试题库 >

领域:在一个应用程序中使用一个或多个领域(以及一个或多个架构)

邢华清
2023-03-14
问题内容

我正在实现一个使用Realm在某些点(彼此之间不相关)持久化数据的应用程序。例如:

  1. 保存用户喜欢的项目。
  2. (该应用进行聊天)保存聊天对话和最近的常量
  3. 为应用程序的某些请求实现永久性缓存
  4. 保存最近的搜索/表单以提供自动完成功能

(让这些点中的每一个都命名为模块/包)

每个模块/软件包都有一些RealmObjects持久性。我应该如何组织呢?从代码清洁度,性能或我应注意的任何方面考虑

选项A:使用具有唯一架构的唯一(默认)领域:

Realm.getInstance(context)

RealmObjects在每个模块/软件包中访问适当的内容

选项B:在默认架构下使用多个领域

RealmConfiguration在每个模块中使用的领域中,指定不同的名称(使用默认架构)。

由于数据属于应用程序的不同部分,相互隔离且未互连,因此请为每个模块使用不同的领域名称。

选项C:使用多个领域,并为每个应用程序包与架构一起使用的模型类的作用域 指定 范围 。为每个隔离的包指定名称和架构。例如:

public static Realm getChat(Context context){
    RealmConfiguration config = new RealmConfiguration.Builder(context)
            .name("chat.realm")
            .schemaVersion(1)
            .html" target="_blank">setModules(new ChatRealmModule())
            .build();
    return Realm.getInstance(config);
}

// Create the module
@RealmModule(classes = { ChatRoom.class, ChatMessage.class, ChatUser.class})
public static class ChatRealmModule{
}

选项D:其他?


问题答案:

如果您的数据确实完全断开连接,我可以选择选项C)。它可以进行清晰的分离。迁移更容易处理,并且由于Realm必须不时循环遍历Realm中的所有模型类,因此性能提升也很小。

但是,没有一个选项是“错误的”。



 类似资料:
  • 问题内容: 我需要从两个领域获得最大的价值: 现在,我如何从这两个中获得最大的价值? 问题答案: 您可能需要使用以下功能: 如果要从所有行中获取绝对最大值,则可能需要使用以下内容: 范例1: 范例2:

  • 我已经将一个spring boot应用程序部署到虚拟机上,启用了有效的ssl证书,一切正常。

  • 我们目前正在使用Windows\Jenkins 2.107.1(无管道),我正在研究管道。我们有一个夜间构建作业,它从存储库中获取、提交和等待其他作业。我看到9个作业同时在同一主节点上运行(我们只有一个主节点)。我不清楚我们应该有一个Jenkinsfile还是多个Jenkinsfile。它不会是一个多分支管道,因为我们不会创建测试分支,然后再合并回主管道。在存储库中,我们有product1.0分支

  • 如何在KeyCloak中的领域中创建管理用户?我尝试了,它给了我一个错误:

  • 问题内容: 我已经使用Nest成功地获得了结果和突出显示,但是如果我在其中搜索突出显示的两个字段中都仅使用了Elasticsearch查询的最后一个字段。例如以下 表示我只能从“摘要”字段中获得突出显示。如果我直接使用等效查询查询elasticsearch,则可以从两个字段中检索突出显示。例如 Nest有可能做到这一点吗?难道我做错了什么? 问题答案: 每个突出显示的字段都需要一个单独的“ .On

  • 这是我使用的代码 我试图添加一行“Lock Lock=new ReentrantLock();”但是asm抛出了一个错误 异常在线程"main"java.lang.IllegalArgumentException:值类java.util.concurrent.locks.在org.objectweb.asm.ClassWriter. a(未知来源)