Область: использование одной или нескольких областей в приложении (и одной или нескольких схем)
Я реализую приложение, которое сохраняет данные в некоторых точках (не связанных между собой), используя Realm. В примере:
Сохраните элементы, добавленные пользователем.(В приложении есть чат) Сохраняйте разговоры в чате и последние константыРеализовать постоянный кеш для некоторых запросов приложенияСохраните последние поиски / форму, чтобы обеспечить автозаполнение(Давайте назовем каждую из этих точек как модуль / пакет)
Каждый модуль / пакет имеет несколько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)
.setModules(new ChatRealmModule())
.build();
return Realm.getInstance(config);
}
// Create the module
@RealmModule(classes = { ChatRoom.class, ChatMessage.class, ChatUser.class})
public static class ChatRealmModule{
}
Вариант D: Другое?