在我的應用程序中,我使用領域作爲數據庫平臺。 領域到目前爲止一直很棒 - 超級簡單易用,查詢等等 - 儘管如此,我有兩個疑惑,我正試圖解決這個問題。使用組合作爲域(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