回调模式的理解

类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("起床去上班了");
    }
 
}!
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 想必大家都知道回调函数的概念,但若你要你真的讲出来,并自己动手编一个估计就有些难度了。下来这篇文章是我见过对回调函...
    Westring阅读 592评论 0 0
  • 概要 64学时 3.5学分 章节安排 电子商务网站概况 HTML5+CSS3 JavaScript Node 电子...
    阿啊阿吖丁阅读 9,290评论 0 3
  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 6,510评论 0 17
  • JAVA面试题 1、作用域public,private,protected,以及不写时的区别答:区别如下:作用域 ...
    JA尐白阅读 1,182评论 1 0
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,136评论 1 32