在Android上共享Realm字段

Android doesn’t support model inheritance/polymorphism上的Realm.

那么有没有办法在Android上分享字段?我们有5个模型,它们共享相同的同步相关字段和代码.我们在当前的SQLite模型中使用继承;如果我们切换到Realm,我们唯一的选择是在5个模型类中的每一个上复制同步字段吗?

作为一种解决方法,我正在考虑让这些类为共享字段实现具有getter和setter的Syncable接口,这至少让我共享同步功能.有没有更好的办法?

为了共享同步功能,我最好的猜测是创建一个静态Synchronizer类并传递它的Syncable模型对象. Synchronizer方法将使用Syncable接口直接在模型对象的共享,同步相关字段上操作,并在特定于类型的字段上委托操作.或者,我可以为每个模型对象提供自己的Synchronizer实例…

试图找到解决继承限制的正确方法,实际上是在扩展我的OOP技能……非常感谢帮助!

解决方法:

如果您使用Kotlin,通过界面共享字段变得更加微不足道:

interface PersonBase {
    var name: String?
    var salary: Int
}

然后

class Person: RealmObject(), PersonBase {
}
上一篇:java – 在父类之间来回转换后,子对象是否会丢失其唯一属性


下一篇:Java中的枚举和多态,扑克牌示例