【问题标题】:Java Observer Pattern - Pass info to other class - methodsJava 观察者模式 - 将信息传递给其他类 - 方法
【发布时间】:2016-07-31 08:23:39
【问题描述】:

查询 - 如果我需要将 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();

【问题讨论】:

  • 请发布您的代码,而不是讲故事。 :)

标签: java observer-pattern observers


【解决方案1】:

反转数据流:与其尝试使用 get 方法从观察者中信息,不如使用观察者将其推送到需要的地方。 p>

【讨论】:

  • 谢谢,你能给我指出如何实现这一目标的方向吗?我对此进行了相当多的搜索,但到目前为止无法弄清楚。道歉对此很陌生。
  • 本质上:无论你想用bO.getObserverFeed()做什么,把它移到update方法。
猜你喜欢
  • 1970-01-01
  • 2020-05-18
  • 1970-01-01
  • 1970-01-01
  • 2020-10-30
  • 2017-01-23
  • 2023-03-26
  • 2013-12-02
  • 1970-01-01
相关资源
最近更新 更多