Sto implementando un'app che persiste i dati in alcuni punti (non correlati tra loro) utilizzando Realm. Nell'esempio:Realm: utilizza uno o più realm in un'app (e uno o più schemi)
- Salvare gli elementi preferiti dall'utente.
- (L'applicazione ha una chiacchierata) Salvare le conversazioni in chat e le costanti recenti
- Implementare una cache persistente per alcune richieste del app
- Salva ricerche recenti/modulo al fine di fornire il completamento automatico
(Assegna un nome a ciascuno di questi punti come modulo/pacchetto)
Ogni modulo/pacchetto ha un numero di RealmObjects
da persistere. Come dovrei organizzare questo? Dal punto di vista della pulizia del codice, le prestazioni o qualsiasi altra cosa dovrei preoccuparmi
Opzione A: Utilizzare un regno unico (default) con uno schema unico:
Usa Realm.getInstance(context)
Accesso al corretto RealmObjects
in ogni modulo/pacchetto
Opzione B: Utilizzare più regni con lo schema predefinito
Specificare un nome diverso nello RealmConfiguration
per l'ambito utilizzato in ogni modulo (utilizzando lo schema predefinito).
Poiché i dati appartengono a parti diverse dell'app, isolate e non collegate, utilizzare un nome di dominio diverso per ciascun modulo.
Opzione C: Utilizzare regni multipli e la portata delle classi del modello utilizzato con uno schema per ogni pacchetto di applicazioni specificare un nome e uno schema per ogni pacchetto isolato. Nell'esempio:
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{
}
Opzione D: Altro?