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?

Respuestas a la pregunta(2)

Su respuesta a la pregunta