我有觀察者模式的問題。
首先,我有一個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