Java观察者模式 - 将信息传递给其他类 - 方法

时间:2016-04-10 07:50:59

标签: java observer-pattern observers

查询 - 如果我需要将Observer类中的信息用于其他类中的方法,我想知道如何继续编写代码。

观察者以Object []的形式从Observable接收更新。我能够将输出打印到控制台上,但不清楚如何将这些信息提供给其他类。

我尝试在Observer中创建一个getInfo方法,该方法返回Object []&然后在我需要信息的类中实例化Observer,调用getInfo方法。但我得到一个空指针异常。

代码 - 观察者

private String car;
private CarModel carModel;

public broadcastObserver(Observable observable){
    observable.addObserver(this);
}

@Override
public void update(Observable observable, Object arg) {
    Object[] subjectMessage = (Object[])arg;
int i = 0;
    for (Object o : subjectMessage) {
        switch (i){
            case 0:
                car = (String)o;
                i++;
                break;
            case 1:
                carModel = (CarModel) o;
                i++;
                break;
        }
    }
}
public Object[] getObserverFeed(){
    Object[] observerFeed = new Object[]{car,carModel};
    return observerFeed;
}

代码 - 需要信息的类方法

broadcastObserver bO = new broadcastObserver();

Object[] feed = bO.getObserverFeed();

1 个答案:

答案 0 :(得分:1)

反转数据流:不使用get-methods从观察者那里尝试信息,而是使用观察者推送到需要的位置。