这个问题与MVC(模型 - 视图 - 控制器)有关。我的模型当前使用Java中的Observer / Observable模式更改了我的View:
public class Model extends Observable {
}
public class View implements Observer {
@Override
public void update(observable o, Object obj) {
// ... update the view using the model.
}
}
这很好用。然而,我的模型变得越来越复杂 - 它开始持有其他类的列表:
public class Model extends Observable {
List<Person> people = new ArrayList<Person>();
}
public class Person {
private String name = "";
// ... getter / setter for name
}
我的问题是:当一个人的名字发生变化时,我想更新一个包含该人的模型的视图。我能想到的唯一方法是让Model实现一个Observer类,让Person扩展一个Observable类。然后,当Person改变时,他会通知他的观察者(包括父模型)。
然而,如果我的模型变得复杂,这似乎很多工作。是否有更好的方法可以对父模型进行“冒泡”更改?