java之回调函数-机制示例1

看过spring、hibernate源码的朋友对callback回调模式应该并不陌生

学过 java 的朋友一定遇到过 callback 回调函数 的例子,用一句话来概括就是:“if you call me, i will call back”。

自己学习了一下,写了个小例子,还请大伙指正。


JAVA中的回调函数:

1.先预定义的协议接口:

package com.test;

public interface  CallBack {
	 public String execute();
}

2.实现行为

package com.test;

public  class Service {
	public  String doExecute(CallBack callBack) {
		// do something ....
		return callBack.execute();
	}
}


3.测试回调函数:

package com.test;

public class Client {
	public static void main(String[] args) {
		testCallBack();
		
	}
	
	public static void testCallBack(){
		final Service service = new Service();
		String result = service.doExecute(new CallBack(){
			public String execute() {
				String msg = "正在执行....";
				return msg;
			}
		});
		System.out.println(result);
		CallBack callBeck = new CallBackImpl();
		result = service.doExecute(callBeck);
		System.out.println(result);
	}
}


第二种实现:

  a.步骤分解,再为  CallBack 提供一个实现类如:

package com.test;

public class CallBackImpl implements CallBack{
	public String execute() {
		String msg = "实现接口工作";
		return msg;
	}
}

b.测试回调函数:

package com.test;

public class Client {
	public static void main(String[] args) {
		testCallBack();
	}
	
	public static void testCallBack(){
		final Service service = new Service();
		CallBack callBeck = new CallBackImpl();
		String result = service.doExecute(callBeck);
		System.out.println(result);
	}
}

对以上面进行分析,不难发现关键是在  Service  类中:

public  String doExecute(CallBack callBack) {
		// do something ....
		return callBack.execute();
}


其原理便是如此,这便是我们在 java 中很多地方所遇见而不解其原理和用途,如 swing,jdbc中Spring中的HibernateTemplate和JpaTemplate等。

通过上面简单的例子可以看清楚原理。



java之回调函数-机制示例2 将模拟JDBC中的回调





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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值