Java中对于回调函数的简单理解

有一天,贾君鹏走在路上,突然感觉肚子饿了。于是他给妈妈打电话说:妈妈,饭做好了叫我。然后贾君鹏的妈妈开始做饭,等饭做好了的时候妈妈给贾君鹏回了个电话:快回来吃饭吧,然后贾君鹏就快乐的回家了。

上面就是回调机制的一个简单直白的例子。用英文来说就是:If you call me , I will call you back。

那么使用回调函数有什么好处呢?从上面的例子我们大概可以看出:如果不用回调函数,就相当于贾君鹏妈妈的手机只有接听的功能,所以贾君鹏只有不断的去打电话问他妈饭做没做好,后来只能又上演"贾君鹏,你妈喊你回家吃饭"这一幕了。贾君鹏妈妈做饭是一个耗时的过程,而贾君鹏只关心饭做没做好,做好了告诉我一声就行了。而不是做了什么菜,用了多少时间。这一点在代码中可以充分体现出回调函数的优势。(附上代码及调用顺序)

JiaJunPeng.java

public class JiaJunPeng implements Mum.Callback{

	private Mum mum;
	@Override
	public void goHomeToEat() {
		System.out.println("回来吃饭吧...");//6.贾君鹏接到了妈妈的电话,告别了小伙伴,就回家吃饭了
	}
	public void callMeBackToEat(){
		mum = new Mum();
		mum.timeToEat(this); //1,贾君鹏肚子饿了,给妈妈打电话说:饭做好了叫我啊!
	}
}

Mum.java

public class Mum {

	public interface Callback {
		void goHomeToEat();
	}
	public void timeToEat(Callback callback) {// 2,贾君鹏的妈妈接到儿子的电话
		makeLunch();// 3.开始做饭
		allReady(); // 4.做完了一桌
		callback.goHomeToEat();// 5.给儿子打电话说:儿啊,饭做好了,块回来吃吧!
	}
	private void makeLunch() {
		System.out.println("正在做做饭...");
	}
	private void allReady() {
		System.out.println("饭做好了...");
	}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值