这是我想到的2个选项。
有多个模型,每个模型代表一个类。如果我有2个int 对象,我需要创建2个observable并查看哪个 可观察性发生了变化。
在单个observable(模型)中,将同一组的多个对象组合在一起 class into Array。在视图中,我将不得不迭代数组和 更改包含数组中所有数据的所有字段。
我开始学习如何使用java observable和observer实现MVC模式。我发现我提到的两种方法并不是最好的解决方案。希望可以得到一些帮助。
修改 例如,我在observable类中有以下方法,有人可以告诉我如何在observer中编写update()以获取int b的值吗?
public void setIntA(int a){
this.intA = a;
setChanged();
notifyObservers(a);
}
public void setIntB(int b){
this.intB = b;
setChanged();
notifyObservers(b);
}
setIntA(5);
setIntB(3);
答案 0 :(得分:0)
我不确定你在这里要做什么,但是如果你有一个扩展Observable的类,那么它可以出于各种原因触发一个改变事件。如果您只想在任何值更改时通知观察者,那么您只需要在setter中调用setChanged()和notifyObservers()。 就像Thilo所说的那样,你可以将改变后的东西作为参数传递出去 notifyObservers();
public void setIntA(int a){
this.intA = a;
setChanged();
notifyObservers(a);
}
我建议您确保彻底阅读Javadoc以充分了解观察者和观察者。
答案 1 :(得分:0)
在Observer类上创建两个对a和be的引用,你可以像这样使用update命令。
public void update(Observable o, Object arg)
{
if (o == a)
{
//do what you want with arg
}
}