Java 观察者模式 - 将信息传递给其他 class - 方法
Java Observer Pattern - Pass info to other class - methods
查询 - 如果我需要使 Observer class 中的信息可用于其他 classes 中的方法,我想知道我应该如何继续编码。
观察者以Object[]的形式接收来自Observable的更新。我能够将输出打印到控制台,但不清楚如何让其他 classes 可以使用此信息。
我尝试在 returns Object[] 的 Observer 中创建一个 getInfo 方法,然后在我需要信息的 class 中实例化 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;
}
代码 - Class 需要信息的方法
broadcastObserver bO = new broadcastObserver();
Object[] feed = bO.getObserverFeed();
反转数据流:与其尝试使用获取方法从观察者拉取信息,不如使用观察者推送它到需要的地方。
查询 - 如果我需要使 Observer class 中的信息可用于其他 classes 中的方法,我想知道我应该如何继续编码。
观察者以Object[]的形式接收来自Observable的更新。我能够将输出打印到控制台,但不清楚如何让其他 classes 可以使用此信息。
我尝试在 returns Object[] 的 Observer 中创建一个 getInfo 方法,然后在我需要信息的 class 中实例化 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;
}
代码 - Class 需要信息的方法
broadcastObserver bO = new broadcastObserver();
Object[] feed = bO.getObserverFeed();
反转数据流:与其尝试使用获取方法从观察者拉取信息,不如使用观察者推送它到需要的地方。