`
shuidexiongdi
  • 浏览: 73233 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

回调函数的学习

 
阅读更多

在分析ibatis源码解析配置文件时,接触了大量的回调方法,这里写下学习心得。

一般来说,我们都需要定义一个回调接口,该接口的实现由具体的调用者实现,而模版方法里面规范了一个调用的模版。

如下:

回调接口的定义:

 

/**
 * 回调的接口
 * @author shuidexiongdi
 *
 */
interface ICallBack {
	void doCallBack();
}

 

 模版方法的定义:

 

/**
 * 模版类,该类负责回调函数的调用或者不调用
 * @author shuidexiongdi
 *
 */
class SomeTemplate {
	void afterService(ICallBack callBack) {
		doSomething();
		callBack.doCallBack();
		afterDoCallBack();
	}
	
	void doSomething() {
		System.out.println("haha, i do something first");
	}
	
	void afterDoCallBack() {
		System.out.println("after doing call back");
	}
}
 

 

具体的调用者:

 

/**
 * 具体的调用者,该类定义回调的内容(具体回调的内容由该类实现)
 * @author dengjianquan-ghq
 *
 */
class SomeService {
	void serviceOne() {
		doMyservice();
		SomeTemplate wdbs = new SomeTemplate();
		wdbs.afterService(new ICallBack() {

			public void doCallBack() {
				System.out.println("yes ,doing call back");
				
			}
			
		});
		
	}
	
	void doMyservice() {
		System.out.println("do my service");
	}
}

 

 测试类:

 

//测试用的类
public class CallBackTest {
	
	public static void main(String[] args) {
		new SomeService().serviceOne();
	}

}
 

 

打印的结果:

 

do my service
haha, i do something first
yes ,doing call back
after doing call back

 

 

 总结一下回调和模版模式的相同点和不同点:

相同点:两者都是定义一个模版,调用者只需要实现指定的接口即可

不同点:回调不要求调用者继承模版类,回调的接口通过参数的方式传入;而模版模式一般都要求调用者实现模板类,回调的接口通过继承的方式获得。

 

分享到:
评论

相关推荐

    lwip的回调函数学习笔记与相关函数释疑

    lwip的回调函数学习笔记与相关函数释疑 lwip 是一个轻量级的TCP/IP协议栈,广泛应用于嵌入式系统中。在lwip中,回调函数是一种重要的机制,用于处理网络事件和数据传输。本文将详细介绍lwip的回调函数学习笔记与...

    C++回调函数学习 深入学习回调函数

    C++回调函数学习 深入学习回调函数

    C语言回调函数学习.

    在C语言中,回调函数是一种高级的函数指针应用,它允许我们将函数的执行逻辑委托给其他函数。回调函数的概念是:将一个函数的指针作为参数传递给另一个函数,当这个函数在适当的时候调用这个函数指针,我们就称这个...

    VC中的 回调函数 学习资料

    在Microsoft Visual C++ (VC++) 编程环境中,回调函数是一种强大的工具,它允许程序员定义一个函数,这个函数可以被其他代码(通常是库或操作系统)...因此,深入学习和实践回调函数的运用是每个VC++开发者必备的技能。

    C++回调函数学习及常用操作

    在C++编程中,回调函数是一种机制,允许我们将一个函数的指针或引用作为参数传递给另一个函数,以便在适当的时候由那个函数调用。这种技术在处理异步操作、事件驱动编程、信号处理和算法实现等场景中非常常见。本篇...

    [linux嵌入式方向]C语言回调函数学习

    回调函数在C语言中是一种强大的编程机制,尤其在Linux嵌入式开发中有着广泛的应用。回调函数的概念基于函数指针,即一个函数的地址可以被赋值给一个变量,这个变量本质上就是一个函数指针。当这个函数指针作为参数...

    PB 回调函数,多线程

    通过阅读和学习这些示例,开发者可以了解如何在自己的项目中应用PB回调函数和多线程技术。 总结来说,PB回调函数在多线程环境中的应用涉及到数据序列化、事件处理、线程安全以及组件化开发等多个方面。通过合理利用...

    osg回调函数的使用

    在VS2010和OSG 3.2的环境下,理解并正确使用回调函数对于任何希望深入学习OSG的初学者来说都至关重要。 一、回调函数的概念 回调函数,顾名思义,是“回调”到你的代码中的函数。在OSG中,当某些事件如鼠标点击、...

    回调函数演示

    回调函数在计算机编程中是一种非常重要的机制,尤其在C++编程中,它允许我们传递一个函数作为参数到另一个函数,或者让一个函数在特定...通过实践和学习,你将能够自如地运用回调函数,创造出更加灵活和高效的代码。

    vc回调函数例子

    在C++编程中,回调函数是一种机制,允许...通过实践和不断学习,你可以创建更复杂、更高效的回调机制,例如使用类成员函数作为回调,或者利用现代C++特性如std::function和lambda表达式,让回调函数更加灵活和强大。

    dll 回调函数

    DLL(Dynamic Link Library)是Windows操作系统中的一个核心特性,它允许多个程序共享同一段代码和数据,从而...学习和掌握DLL回调函数的使用,能够帮助开发者更好地利用Windows平台的资源,实现高效且灵活的程序设计。

    BCB线程中调用主界面的回调函数

    网上的回调函数都是API例子,学习函数指针倒是不错,可是很难让初学者立即应用。常见的情况是辅线程完成某事件后需要“通知”主界面,比如常见的进度条——线程中完成一定的进度后即通知主界面显示到一定的刻度。本...

    android回调函数

    在Android开发中,回调函数是一种常见的编程模式,用于在特定事件发生时通知并允许其他对象进行相应的处理。回调函数在Android中的...下载并学习这个demo,可以帮助你更深入地理解Android回调函数的用法和实现细节。

    Delphi 回调函数范例

    通过学习这些实例,你可以更好地理解Delphi中回调函数的工作原理和使用方式。 总的来说,Delphi的回调函数机制为程序设计提供了更大的灵活性和可扩展性。通过掌握回调函数,开发者可以创建更加动态和响应的软件,...

    帮助理解回调函数的简洁实例

    回调函数在编程中是一种常见的设计模式,特别是在异步编程中,它被广泛应用于JavaScript、Python、C++等语言。回调函数的基本概念是将一个函数...在学习和实践中,可以结合具体场景和示例,不断加深对回调函数的理解。

    vc回调函数举例

    在VC++编程环境中,回调函数是一种非常重要的机制,它允许我们定义一个函数,然后将这个函数的指针作为参数传递给另一个函数,被传递的函数在适当的时候会被调用执行。这种方式在多线程编程中尤其常见,因为它可以...

    DLL 回调函数 + Demo示例程序,VS2017 x64

    这个示例程序是学习和理解DLL回调机制的好工具,因为它涵盖了从创建到使用回调函数的完整过程。通过分析和运行这个Demo,开发者可以深入理解如何在64位环境下利用VS2017进行DLL开发,并熟练掌握回调函数的应用技巧。

    回调函数的应用

    回调函数的应用,了解回调函数的用法学习回调函数的思想

    Android回调函数demo

    在Android开发中,回调函数(Callback Function)是一种重要的设计模式,它允许代码在特定事件发生时执行自定义操作。...在学习和实践中,理解并熟练运用回调函数对于提升Android开发技能至关重要。

    经典回调函数实例

    回调函数在编程中是一种常见的设计模式,特别是在异步编程中,它被广泛应用于JavaScript、Python等语言中。回调函数的基本思想是将一个函数...在“经典回调函数实例”中,你可以通过具体示例深入学习和实践这一概念。

Global site tag (gtag.js) - Google Analytics