我正在实现一个使用Realm在某些点(彼此之间不相关)持久化数据的应用程序。例如:
(让这些点中的每一个都命名为模块/包)
每个模块/软件包都有一些
RealmObjects
可以保留。我应该如何组织呢?从代码清洁度,性能或我应注意的任何方面考虑选项A:使用具有唯一架构的唯一(默认) Realm :
使用
Realm.getInstance(context)
在每个模块/程序包中访问正确的
RealmObjects
选项B:将多个 Realm 与默认模式一起使用
在
RealmConfiguration
中为每个模块中使用的 Realm 指定一个不同的名称(使用默认模式)。由于数据属于应用程序的不同部分,相互隔离且未互连,因此请为每个模块使用不同的 Realm 名称。
选项C:使用多个 Realm ,并为每个应用程序包限制与模式一起使用的模型类
为每个隔离的软件包指定名称和架构。例如:
public static Realm getChat(Context context){
RealmConfiguration config = new RealmConfiguration.Builder(context)
.name("chat.realm")
.schemaVersion(1)
.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中的所有模型类,因此性能提升也很小。
但是,没有一个选项是“错误的”。