我有两个类SubRecord
和MainRecord
,每个类都有各自的字段。这些都不是另一个的子类。多个SubRecord
对象对应于一个MainRecord
对象,这两个对象均由字段id
区分。 val
中的字段SubRecord
对应于val
类型的MainRecord
中的值double
。如何在更新val
中的MainRecord
时,所有所有SubRecord
类型的相应对象同时将其val
字段更新为相同的值?
最佳答案
我想您的MainRecord
有其子记录的列表。根据常见且显而易见的Java Bean模式,应通过设置器提供对val
的访问。因此,您可以像这样修改setVal
方法的内部:
public class MainRecord {
private double val;
private List<SubRecord> subs;
// ...
public void setVal(double newVal) {
this.val = newVal;
for(SubRecord entry : subs)
entry.setVal(newVal);
}
}
这是观察者模式的非常简单的变化。在此处查看更多信息:https://en.wikipedia.org/wiki/Observer_pattern