手记

观察者模式:观察者对象里包含了主题对象,为什么update方法还要再传呢

在《Head First 设计模式》这本书中,有观察者模式

可是我看里面写的,气象站的代码,觉得有问题。

观察者对象里包含了被观察对象,为什么update方法还要再传呢

public class CurrentCondition1Display implements Observer,DisplayElement {

  Observable observable;// ?????????????
    
  public CurrentCondition1Display (Observable observable) { 
        this.observable = observable;
        observable.addObserver(this);
    }
    
    public void update(Observable observable, Object localeObj) { // ?????????????
       //在new观察者对象时,已经把主题对象传进来了呀
    }


/**
 * A class can implement the <code>Observer</code> interface when it
 * wants to be informed of changes in observable objects.
 *
 * @author  Chris Warth
 * @see     java.util.Observable
 * @since   JDK1.0
 */
public interface Observer {
    /**
     * This method is called whenever the observed object is changed. An
     * application calls an <tt>Observable</tt> object's
     * <code>notifyObservers</code> method to have all the object's
     * observers notified of the change.
     *
     * @param   o     the observable object.
     * @param   arg   an argument passed to the <code>notifyObservers</code>
     *                 method.
     */
    void update(Observable o, Object arg);
}



0人推荐
随时随地看视频
慕课网APP