试图构建一个简单的Observer-Observable

时间:2017-01-11 15:54:20

标签: java observable observer-pattern

我正在尝试构建一个简单的Observer-Observable,当我调用notifyObservers();时,它不起作用并继续。有人知道该怎么办?

P级:

import java.util.Observable;

public class P extends Observable{
   public void func(){
       notifyObservers();       
   }

}

Ob类:

import java.util.Observable;
import java.util.Observer;

public class Ob implements Observer{

    P p;
    public Ob(P p) {
        this.p=p;
    }

    public void run(){

        p.func();

    }

    @Override
    public void update(Observable o, Object arg) {
        System.out.println("SUceesssed");
    }

}

运行:

public class run {

    public static void main(String[] args) {

    P p=new P();

        Ob o=new Ob(p);
        p.addObserver(o);
        o.run();
    }

}

1 个答案:

答案 0 :(得分:3)

在通知观察员之前,您必须致电hasChanged()

  public class P extends Observable{
   public void func(){
     hasChanged();
     notifyObservers();
   }

 }