この質問は、MVC (Model-View-Controller) に関するものです。私のモデルは現在、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 が変更されると、オブザーバー (親モデルを含む) に通知します。
ただし、モデルが複雑になると、これは大変な作業のように思えます。親モデルへの変更を「バブルアップ」するためのより良い方法はありますか?