類A想讓類B在某個時間段(sometime)完成某樣事情(dosomething)檬某,類B完成某事后鸠珠,再通知(callback)類A執(zhí)行后續(xù)該執(zhí)行的事情
1.A 實現(xiàn) 回調(diào)接口 C 缔赠,并實現(xiàn)接口C中的抽象方法
2.A 中包含 成員變量B休涤,在需要的時候調(diào)用B的dosomething(this)方法,
3.B的dosomething(CallBack callback)方法調(diào)用A的回調(diào)方法
舉例:我想讓鬧鐘在2小時后鐘響,當鬧鐘響了之后踪旷,我去上班植捎。亦即是you call me, i will call back
public class Clock {
public void excute(final CallBack callback){
new Thread(new Runnable() {
@Override
public void run() {
int i = 1000;
while(i<1000*60*60*2){
try {
Thread.sleep(1000);
i++;
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
callback.doSomeThing();
}
}).start();
}
public interface CallBack{
void doSomeThing();
}
}
import javaTest.Clock.CallBack;
public class My implements CallBack {
private Clock clock;
public My(){
}
public My(Clock clock){
this.clock = clock;
this.clock.excute(this);
}
@Override
public void doSomeThing() {
System.out.println("起床去上班了");
}
}衙解!