在我的应用程序中,我使用领域作为数据库平台。 领域到目前为止一直很棒 - 超级简单易用,查询等等 - 尽管如此,我有两个疑惑,我正试图解决这个问题。使用组合作为域(android)继承的解决方法?
1)Realm不支持扩展RealmObject的模型对象类中的继承。 - 我想知道是否有任何开发人员使用组合作为继承问题的解决方法,以及它是否适用于他们。换句话说,假设我有一个扩展RealmObject的类“汽车”,然后我有其他类,如“本田”,“丰田”等。是否有意义为每个包含本田,丰田等?
2)Realm仅支持模型对象类中的getter和setter - 我目前的解决方法是通过在模型对象类中创建静态方法。 - 换句话说,如果我想修改本田的颜色,我会打电话给Honda.updateColor(本田,蓝色)。 - ^这是马虎,还是这是处理这种方法的唯一方法。
真的任何反馈都会很棒!
1)相关的Realm问题是https://github.com/realm/realm-java/issues/761。我不认为继承可以完全被构图所取代,但是在相同的情况下它可能会有所帮助。模型中的“RealmObject”和“RealmList”字段也是输入的,你不能这样做'ExtendCar extendedCar; setExtendCar(NewTypeHondaCar newCar)'2)“更好的对象”功能已经被合并到Realm的master中,它很快就会在0.88.0中发布。您可以在发布前尝试使用快照。使用此功能,您不必为'RealmObject'编写任何setter/getters。 – beeender
对于1)我明白,你不能做“......扩大汽车”,虽然你可以创建一个汽车对象,它扩展了领域对象和本田对象,这也扩展了领域对象。然后,您可以创建一个包含honda对象的汽车对象,并将这两个对象设置为具有相同的唯一标识符 - 或@primarykey。这听起来像一个可行的解决方案?也为2)这真棒!我已经等了很长一段时间了。 –
对于1)我认为那会奏效。 'Honda'可以有'Car'作为通用字段,在0.88.0下,'Honda'可以实现一些类似'getCarProps'的接口,这也可以由'Toyota'实现。几乎就像继承;) – beeender