类A想让类B在某个时间段(sometime)完成某样事情(dosomething),类B完成某事后,再通知(callback)类A执行后续该执行的事情
1.A 实现 回调接口 C ,并实现接口C中的抽象方法
2.A 中包含 成员变量B,在需要的时候调用B的dosomething(this)方法,
3.B的dosomething(CallBack callback)方法调用A的回调方法
举例:我想让闹钟在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("起床去上班了");
}
}!