【发布时间】:2015-03-23 04:45:01
【问题描述】:
我想做的是为 RealmOblject 子类创建一个自定义设置方法。 Realm 不允许我们在 getter 和 setter 中使用自定义逻辑,因此唯一可用的选项是变通方法。我知道有两种方法
1) 按照 Realm 文档 (http://realm.io/docs/java/0.80.0/) 中的说明使用 @Ignore。
2) 第二种方法是创建一个包含 RealmObject 并且必须实现其所有方法的包装类
例如。 Score 的领域模型
public class Score extends RealmObject
{
private int score;
public int getScore()
{
return score;
}
public void setScore(int score)
{
this.score = score;
}
}
得分包装器
public class ScoreWrapper
{
private Score wrappedScore;
public int getScore()
{
return wrappedScore.getScore();
}
public void setScore(int score)
{
//can do any custom data parsing here
wrappedScore.setScore(score+1);
}
public RealmObject getRealmObject()
{
return wrappedScore;
}
}
方法 1) 破坏了对象封装,所以绝对不会这样做。方法 2) 似乎是一个很好的折衷方案。我仍然觉得这是对“面向对象”DBMS 的滥用。对我来说最好的方法是什么?
【问题讨论】: