簡體   English   中英

領域遷移:合適的代碼結構和設計模式

[英]Realm migration: suitable code structure and design pattern

隨着應用程序的進步,領域遷移將大量增加。 是否有任何最佳的設計模式可以大大減少移植的編碼? 假設我進行了以下遷移:

if (!schema.contains(Subject.class.getSimpleName())) {
                            RealmObjectSchema inputConfigSchema = schema.create(Subject.class.getSimpleName())
                                    .addField("name", String.class)
                                    .addField("difficulty", String.class);

                            if (!schema.get(Student.class.getSimpleName()).hasField("subject")) {
                                schema.get(Student.class.getSimpleName()).addRealmObjectField("subject", inputConfigSchema);
                            }

                        }
                        if (!schema.get(Student.class.getSimpleName()).hasField("age")) {
                            schema.get(Student.class.getSimpleName()).addField("age", Integer.class);
                            schema.get(Student.class.getSimpleName()).setNullable("age", false);
                        }
    }

請提出合適的設計模式以優化此類領域遷移

在以下情況下,使用Student.class.getSimpleName()獲取字符串"Student"將失敗:

  • 使用了Proguard並混淆了類

  • 如果Student班從項目中刪除

RealmObjectSchema student = schema.get("Student")
if (!schema.contains("Subject")) {
    RealmObjectSchema subject = schema.create("Subject")
                                    .addField("name", String.class)
                                    .addField("difficulty", String.class);

    if (student.hasField("subject")) {
        student.addRealmObjectField("subject", subject);
    }
}

if (!student.hasField("age")) {
    student.addField("age", Integer.class, FieldAttributes.REQUIRED);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM