我有观察者模式的问题。
首先,我有一个HttpHelper类从服务器获取数据,我使用它作为Observerable。在java中的双重观察者?
public class HttpHelper extends Observable,Runnable{
public void run(){
//do long task to get data
String result = getData();
setChanged();
notifyObservers(result);
}
}
DataManager类完成时从HttpHerlper获取数据,然后执行一些业务任务。
public class DataManager implements Observer {
public void doTask(){
HttpHelper helper = new HttpHelper();
helper.addObserver(this);
Thread thread = new Thread(helper);
thread.start();
}
public void update(Observable obj, Object data) {
if (data instanceof String) {
// do some stuff with this data
// Then I want to notify the result to the view
Model model = doSomething(data);
notify(model)
}
}
}
Finaaly View类将在DataManager完成任务时更新数据。
public class View{
private void getData(){
DataManager manager = new DataManager()
manager.doTask();
}
public void update(Observable obj, Object data) {
}
}
我应该再次使用Observer吗?我该怎么做?
P/s:由于某种原因,HttpHelper和DataManager必须分开。
更新:这是阶级结构 https://www.dropbox.com/s/givn6vzvqr4cgye/bkd.png
视图类的目的是什么?介绍? – Mohayemin
是的,它会显示数据 – R4j