【发布时间】:2020-07-15 23:17:37
【问题描述】:
public static void main(String[] args) {
WeatherData subject =new WeatherData();
new ShowEstadistics(subject);
}
public class WeatherData implements Subject {
ArrayList<Observer> observers;
public WeatherData() {
observers = new ArrayList();
}
@Override
public void registerObserver(Observer o) {
observers.add(o);
}
}
public class ShowEstadistics implements Observer{
WeatherData weatherdata;
public ShowEstadistics(WeatherData subject) {
this.weatherdata=subject;
this.weatherdata.registerObserver(this);
}
我不知道观察者是如何在这部分的主题中注册的:
public ShowEstadistics(WeatherData subject) {
this.weatherdata=subject;
this.weatherdata.registerObserver(this);
}
因为我将 registerObserver 方法应用于天气数据,但由于某种原因,它也在主题中注册。我不知道为什么。
请有人解释一下。
【问题讨论】:
-
因为
subject和weatherdata引用了同一个对象。
标签: java object design-patterns observer-pattern