回调模式的理解

类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("起床去上班了");
    }
 
}!

你可能感兴趣的:(回调模式的理解)