使用组合作为领域(android)继承的变通方法?

在我的应用程序中,我使用领域作为数据库平台.到目前为止,Realm一直很棒 – 超级易于使用,进行查询等等 – 但是,我有两个问题,我正在尝试解决这个问题.

1)Realm不支持扩展RealmObject的模型对象类中的继承.
– 我想知道是否有任何开发人员使用组合作为继承问题的解决方法,如果它适用于他们.
– 换句话说,我说有一个类“汽车”,它扩展了RealmObject,然后我有其他类,如“本田”,“丰田”等.是否有必要为每个包含任意一个的汽车对象制作本田,丰田等?

2)Realm仅支持模型对象类中的getter和setter
– 我目前的解决方法是在模型对象类中创建静态方法.
– 换句话说,我想修改本田的颜色,我会称之为Honda.updateColor(本田,蓝色).
– ^这是草率的,或者这实际上是处理这些方法的唯一方法.

真的任何反馈都会很棒!

最佳答案 我使用过的解决方法(简而言之)

组合接口继承将允许您将一些多态性好处带回到realmObjects.

一些代码演示

interface IPerson {

    String getName();
}

class Person extends RealmObject implements IPerson {

    String name;

    @Override
    public String getName() {
        return name;
    }
}

interface IWorker extends IPerson {
    int getSalary();
}

class Worker extends RealmObject implements IWorker {

    Person person;
    int salary;

    @Override
    public String getName() {
        return person.getName();
    }

    @Override
    public int getSalary() {
        return salary;
    }
}

注意

不幸的是,PrimaryKeys必须重复.

检查我的answer以获得有关此变通方法的更多详细信息.

点赞