回调模式的理解

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

}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值