Java 观察者模式不通知

标签 java architecture observer-pattern software-design

由于某些原因,当我使用 java.util.Observable 对象调用 notifyObserver 方法时,我的观察者没有收到通知:

这是我的可观察对象:

public class ProjectManager extends Observable
{
...
 public void updateProjects(String project, String pack, String source, String ARN)
{
   ...
if(newSource)
    {
    tempPack.add(tempSource);
    System.out.println("Notify observers: " + this.countObservers());
    this.notifyObservers();
    }
      ...
      }

我可以从我的输出中看到正在添加观察者但没有收到通知。

我的观察者对象看起来像这样:

public class IDE implements Observer
{

@Override
public void update(Observable o, Object arg) {

    System.out.println("Notified");

}

由于某些奇怪的原因,可观察对象根本没有被通知。我在这里做错了什么吗?

最佳答案

你需要在notifyObservers之前setChanged

关于Java 观察者模式不通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11315425/

相关文章:

swing - 在 JavaFX GUI 设计中利用观察者模式

java - 确保对象的序列化正确完成

java - 使用java图形沿着圆弧路径移动对象

java - 在安卓上使用服务加载器

linux - gem5 构建失败, "error: ' printPFflags' was not declared in this scope”

C++:带有 API 的应用程序架构

architecture - 经理类

java - 如何在 Java Selenium 驱动程序中单击 Canvas 的中心?

javascript - 将表单连接到 Javascript 对象(以及其他最佳实践建议)

c# - 支持 Ajax 的 WCF 服务 - 实现观察者设计模式