在Observer类中访问Observable类的方法

时间:2015-03-12 20:12:23

标签: java design-patterns observers

如何从Observer类中的Observable类访问方法/实例,其中方法/实例不是被观察的对象。

例如,如果这些getter方法在我的Observable类中,但只有一本书被观察,我将如何访问我的Observer类中的名称和存储(即在update()方法中)?

public class MethodEx extends Observable {
        ...
    public String getName(){
        return this.name;
    }

    public String getBook(){
        return this.book;
    }

    public String getStore(){
        return this.store;
    }
}

1 个答案:

答案 0 :(得分:2)

您通常会将观察到的对象与事件一起传递。这在例如使用ChangeListenerChangeEvent中完成。 ChangeEventgetSource方法,可以告知哪个对象已更改。

翻译成您的术语,您可以

public String setBook(Book book) {
    this.book = book;
    for (UpdateListener listener : listeners)
        listener.updated(new UpdateEvent(this));
}