java - 在 Observer 类中访问 Observable 类的方法

标签 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;
    }
}

最佳答案

您通常将观察到的对象与事件一起传递。例如,这是在 ChangeListener 中完成的它使用 ChangeEventChangeEvent 有一个 getSource 方法,用于告知哪个对象已更改。

翻译成你的术语,你会这样做

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

关于java - 在 Observer 类中访问 Observable 类的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29019336/

相关文章:

java - 如何使用 Java servlet 将值插入到 mysql 数据库?

java - 工厂模式 - 字符串还是枚举?

javascript - 每个 knockoutjs 模板有一个单独的 VM 类违反了 OOP?

ember.js - 观察路线变化以适用于onload

java - 我如何知道我的 Observable 类发生了什么变化?

JavaFX:进程运行时禁用所有组件并显示进度指示器

java - Thread.sleep 的准确性如何?

java - junit5 - 并行运行测试(pom 中没有 forkCount)

qt - 在异构数据层次结构的不同 View 之间拖放

ios - 在 Swift 中使用 Firebase 中的句柄删除观察者