在分析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 是一个轻量级的TCP/IP协议栈,广泛应用于嵌入式系统中。在lwip中,回调函数是一种重要的机制,用于处理网络事件和数据传输。本文将详细介绍lwip的回调函数学习笔记与...
C++回调函数学习 深入学习回调函数
在C语言中,回调函数是一种高级的函数指针应用,它允许我们将函数的执行逻辑委托给其他函数。回调函数的概念是:将一个函数的指针作为参数传递给另一个函数,当这个函数在适当的时候调用这个函数指针,我们就称这个...
在Microsoft Visual C++ (VC++) 编程环境中,回调函数是一种强大的工具,它允许程序员定义一个函数,这个函数可以被其他代码(通常是库或操作系统)...因此,深入学习和实践回调函数的运用是每个VC++开发者必备的技能。
在C++编程中,回调函数是一种机制,允许我们将一个函数的指针或引用作为参数传递给另一个函数,以便在适当的时候由那个函数调用。这种技术在处理异步操作、事件驱动编程、信号处理和算法实现等场景中非常常见。本篇...
回调函数在C语言中是一种强大的编程机制,尤其在Linux嵌入式开发中有着广泛的应用。回调函数的概念基于函数指针,即一个函数的地址可以被赋值给一个变量,这个变量本质上就是一个函数指针。当这个函数指针作为参数...
通过阅读和学习这些示例,开发者可以了解如何在自己的项目中应用PB回调函数和多线程技术。 总结来说,PB回调函数在多线程环境中的应用涉及到数据序列化、事件处理、线程安全以及组件化开发等多个方面。通过合理利用...
在VS2010和OSG 3.2的环境下,理解并正确使用回调函数对于任何希望深入学习OSG的初学者来说都至关重要。 一、回调函数的概念 回调函数,顾名思义,是“回调”到你的代码中的函数。在OSG中,当某些事件如鼠标点击、...
回调函数在计算机编程中是一种非常重要的机制,尤其在C++编程中,它允许我们传递一个函数作为参数到另一个函数,或者让一个函数在特定...通过实践和学习,你将能够自如地运用回调函数,创造出更加灵活和高效的代码。
在C++编程中,回调函数是一种机制,允许...通过实践和不断学习,你可以创建更复杂、更高效的回调机制,例如使用类成员函数作为回调,或者利用现代C++特性如std::function和lambda表达式,让回调函数更加灵活和强大。
DLL(Dynamic Link Library)是Windows操作系统中的一个核心特性,它允许多个程序共享同一段代码和数据,从而...学习和掌握DLL回调函数的使用,能够帮助开发者更好地利用Windows平台的资源,实现高效且灵活的程序设计。
网上的回调函数都是API例子,学习函数指针倒是不错,可是很难让初学者立即应用。常见的情况是辅线程完成某事件后需要“通知”主界面,比如常见的进度条——线程中完成一定的进度后即通知主界面显示到一定的刻度。本...
在Android开发中,回调函数是一种常见的编程模式,用于在特定事件发生时通知并允许其他对象进行相应的处理。回调函数在Android中的...下载并学习这个demo,可以帮助你更深入地理解Android回调函数的用法和实现细节。
通过学习这些实例,你可以更好地理解Delphi中回调函数的工作原理和使用方式。 总的来说,Delphi的回调函数机制为程序设计提供了更大的灵活性和可扩展性。通过掌握回调函数,开发者可以创建更加动态和响应的软件,...
回调函数在编程中是一种常见的设计模式,特别是在异步编程中,它被广泛应用于JavaScript、Python、C++等语言。回调函数的基本概念是将一个函数...在学习和实践中,可以结合具体场景和示例,不断加深对回调函数的理解。
在VC++编程环境中,回调函数是一种非常重要的机制,它允许我们定义一个函数,然后将这个函数的指针作为参数传递给另一个函数,被传递的函数在适当的时候会被调用执行。这种方式在多线程编程中尤其常见,因为它可以...
这个示例程序是学习和理解DLL回调机制的好工具,因为它涵盖了从创建到使用回调函数的完整过程。通过分析和运行这个Demo,开发者可以深入理解如何在64位环境下利用VS2017进行DLL开发,并熟练掌握回调函数的应用技巧。
回调函数的应用,了解回调函数的用法学习回调函数的思想
在Android开发中,回调函数(Callback Function)是一种重要的设计模式,它允许代码在特定事件发生时执行自定义操作。...在学习和实践中,理解并熟练运用回调函数对于提升Android开发技能至关重要。
回调函数在编程中是一种常见的设计模式,特别是在异步编程中,它被广泛应用于JavaScript、Python等语言中。回调函数的基本思想是将一个函数...在“经典回调函数实例”中,你可以通过具体示例深入学习和实践这一概念。