观察者模式

xiaoxiao2022-06-11  33

1.在一个extends Observable类的类中需要调用this.setChanged();方法, 还得调用this.notifyObservers( arg);可以带参数,也可以不带,会执行实现了Observer接口update(Observable o,Object obj)方法,在这个方法中可以获取 arg参数.(一个类的执行会引起另一个类的执行) public class MyObservable extends Observable {  Integer i;  public void set(Integer i){   this.i=i;   this.setChanged();  }    public void testChange(){   //设置对象已改变   this.setChanged();  // set(Integer.valueOf(8));   //通知观察者  // this.notifyObservers(i);   this.notifyObservers("猪肉涨价了");     System.out.println("世道变了!!");  }      public static void main(String [] args){       MyObservable observable = new MyObservable();     MyObserver observer = new MyObserver();   MyObserver observer2 = new MyObserver();   //注册观察者   observable.addObserver(observer);   observable.addObserver(observer2);     observable.testChange();  } } import java.util.Observable; import java.util.Observer; public class MyObserver implements Observer {  public void update(Observable o, Object arg) {//只要改变了 observable 对象就调用此方法。   System.out.println( "观察者观察到:::" +(String)arg);  } } 相关资源:Java 面经手册·小傅哥(公众号:bugstack虫洞栈).pdf
转载请注明原文地址: https://www.6miu.com/read-4930249.html

最新回复(0)