我有两个类SubRecordMainRecord,每个类都有各自的字段。这些都不是另一个的子类。多个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

07-28 08:14