卻發現沒辦法把function當作參數傳給另一個function當CallBack用
因為在Java內並沒有function pointer,所以就有點麻煩
這時候可以用類似Observer的方式來做
簡單來說就是,既然無法丟一個function進去
那你可以把要執行的function放到一個物件內
把物件當參數丟進去就可以了
作法
一.建立公用的Observer Interface
利用Interface將允許使用的method定義出來
例
public interface IObserver{
public abstract void success(Object data);
public abstrcat void fail(String msg);
public abstract void exception(String msg)
}
二.建立要使用的observer Class
把要做的工作在這這Class內實做出來
當然你也可以把這Class建立主(main)程式內,
這樣可以更方便
例
public class MyObserver implements IObserver{
@override
public abstract void success(Object data){
...
};
@override
public abstrcat void fail(String msg){
...
};
@override
public abstract void exception(String msg){
...
}
}
三.主程式應用
public class myApp{
....
public void run(int status,IObserver observer){
.....
if(status==1){
observer.success(data)
}else if(status==2){
observer.fail()
}else{
observer.exception("exception");
}
};
}
沒有留言:
張貼留言