这个问题与 MVC(模型-视图-控制器)有关。我的模型当前使用 Java 中的 Observer / Observable 模式更改了我的视图:
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 发生变化时,他会通知他的观察者(包括父模型)。
但是,如果我的模型变得复杂,这似乎需要做很多工作。有没有更好的方法来“冒泡”对父模型的更改?