Realm on Android doesn't support model inheritance/polymorphism.
So is there any way to share fields on Android? We have 5 models that all share the same synchronization-related fields and code. We use inheritance in our current SQLite models; if we switch to Realm, is our only choice to duplicate the sync fields across each of the 5 model classes?
As a workaround, I'm thinking about having those classes implement a Syncable
interface with getters and setters for the shared fields, which at least let me share sync functionality. Is there a better way?
To share sync functionality, my best guess is to make a static Synchronizer
class and pass it Syncable
model objects. Synchronizer
methods will use the Syncable
interface to operate directly on model objects' shared, sync-related fields and delegate operations on type-specific fields. Alternatively, I could provide each model object its own Synchronizer
instance...
Trying to find the right way to work around the inheritance limitation is really stretching my OOP skills... help is appreciated!