Я реализую приложение, которое сохраняет данные в некоторых точках (не связанных между ними) с использованием 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: Другой?