Reino: use uno o varios reinos en una aplicación (y uno o varios esquemas)
Estoy implementando una aplicación que persiste los datos en algunos puntos (no relacionados entre ellos) usando Realm. Por ejemplo:
Guarde los elementos favoritos por el usuario.(La aplicación tiene un chat) Guarde las conversaciones de chat y las constantes recientesImplemente un caché persistente para algunas solicitudes de la aplicación.Guardar búsquedas / formularios recientes para proporcionar autocompletado(Vamos a nombrar cada uno de esos puntos como un módulo / paquete)
Cada módulo / paquete tiene algunaRealmObjects
persistir. ¿Cómo debo organizar esto? Desde el punto de vista de la limpieza del código, el rendimiento o lo que sea que me importe
Opción A: utilice un reino único (predeterminado) con un esquema único:
UtilizarRealm.getInstance(context)
Accediendo a lo propioRealmObjects
en cada módulo / paquete
Opción B: usar múltiples reinos con el esquema predeterminado
Especifique un nombre diferente en elRealmConfiguration
para el reino utilizado en cada módulo (usando el esquema predeterminado).
Dado que los datos pertenecen a diferentes partes de la aplicación, aislados y no interconectados, use un nombre de reino diferente para cada módulo.
Opción C: utilice múltiples reinos y alcance las clases de modelo utilizadas con un esquema por paquete de aplicación Especifique un nombre y un esquema para cada paquete aislado. Por ejemplo:
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{
}
Opción D: ¿Otra?