`

回调函数理解

阅读更多

http://www.cnblogs.com/wangchenyang/archive/2011/08/16/2140744.html

 

<1>

所谓回调,就是客户程序CLIENT调用服务程序SERVER中的某个函数SA,然后SERVER又在某个时候反过来调用CLIENT中的某个函数CB,对于CLIENT来说,这个CB便叫做回调函数。例如Win32下的窗口过程函数就是一个典型的回调函数。
一般说来,CLIENT不会自己调用CB,CLIENT提供CB的目的就是让SERVER来调用它,而且是CLIENT不得不提供。由于SERVER并不知道CLIENT提供的CB叫甚名谁,所以SERVER会约定CB的接口规范(函数原型),然后由CLIENT提前通过SERVER的一个函数R告诉SERVER自己将要使用CB函数,这个过程称为回调函数的注册,R称为注册函数。Web SERVERerviCliente以及Java的RMI都用到回调机制,可以访问远程服务器程序。

 

<2>

回调用于层间协作,上层将本层函数安装在下层,这个函数就是回调,而下层在一定条件下触发回调,例如作为一个驱动,是一个底层,他在收到一个数据时,除了完成本层的处理工作外,还将进行回调,将这个数据交给上层应用层来做进一步处理,这在分层的数据通信中很普遍。
其实回调和API非常接近,他们的共性都是跨层调用的函数。但区别是API是低层提供给高层的调用,一般这个函数对高层都是已知的;而回调正好相反,他是高层提供给底层的调用,对于低层他是未知的,必须由高层进行安装,这个安装函数其实就是一个低层提供的API,安装后低层不知道这个回调的名字,但它通过一个函数指针来保存这个回调,在需要调用时,只需引用这个函数指针和相关的参数指针。

 

<3>

个人的理解:回调就是预留的接口,以备被调来调用这个主调设置的方。具体如何实现这个方法,是主调来维护的。这在java的面向接口编程中很是常见。从“层”观点来理解比较合理,很好理解。

 

分享到:
评论

相关推荐

    详解C#委托,事件与回调函数

    详解 C# 委托、事件与回调函数 委托是 C# 中一种非常重要的概念,它可以将方法作为参数传递给其他方法,也可以将方法作为返回值返回给其他方法。委托的定义是:delegate 返回类型 委托名(参数列表);例如:...

    mfc下实现回调函数

    首先,我们需要理解回调函数的基本概念。回调函数是一种函数,它的地址被存储在另一个函数中,当那个函数执行到一定阶段时,会调用这个保存的地址,即回调函数。在MFC中,回调函数常常用于处理消息、事件或者在多...

    使用C语言写的回调函数

    回调函数在C语言中是一种非常重要的编程机制,它允许我们将一个函数的地址...通过理解和熟练运用回调函数,开发者可以构建更加灵活、可扩展的程序。在实际项目中,回调函数的运用可以显著提高代码的复用性和可维护性。

    c++builder回调函数例子

    首先,让我们理解什么是回调函数。回调函数是程序员提供给另一个程序(如DLL)的函数指针,这样在需要时,这个程序可以调用该函数。在C++ Builder中,我们通常通过声明函数指针类型来定义回调函数,并将其作为参数...

    PB 回调函数,多线程

    首先,让我们深入理解回调函数的概念。回调函数是一种设计模式,允许我们将一个函数作为参数传递给另一个函数。当被调用的函数完成其操作后,它会执行传递给它的这个函数,即回调函数。在多线程环境中,回调函数常...

    C#回调函数示例

    首先,我们需要理解回调函数的基本概念。回调函数本质上是一个在其他函数完成其工作后被调用的函数。在C#中,我们通常使用委托(Delegate)来实现回调机制。委托是类型安全的函数指针,可以引用一个或多个具有相同...

    C# 实现回调函数

    首先,我们需要理解什么是回调函数。回调函数本质上就是一个函数引用,可以在其他函数执行过程中或结束后被调用。在C#中,你可以通过几种方式来实现回调: 1. **委托(Delegate)**:C#中的委托是类型安全的函数...

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

    在给出的链接中,博客文章《通过代码复用的场景理解回调函数是怎么一回事》可能会提供具体的代码示例,展示如何在实际场景中使用回调函数来实现代码复用和功能组合。通过阅读这个例子,你可以更好地理解回调函数的...

    java 回调函数 实现

    8. **回调的优缺点**:回调函数提供了一种灵活的方式来处理事件,但可能导致“回调地狱”问题,即嵌套过多的回调函数会使代码难以理解和维护。为了解决这个问题,Java 8引入了Lambda表达式,使得代码更加简洁。此外...

    Android回调函数的例子

    首先,理解Java回调函数的基础概念。回调函数本质上是将一个函数作为参数传递给另一个函数,待特定条件满足或特定事件发生时,被调用的函数将执行预设的任务。这种方式可以让我们在不改变原有函数结构的情况下,增加...

    delphi Dll的回调函数

    首先,我们需要理解什么是回调函数。回调函数是一种设计模式,其中函数A作为参数传递给函数B,然后在函数B的执行过程中被调用。在Delphi的DLL上下文中,回调函数通常用于处理异步操作或者在DLL内部完成某些计算后...

    osg回调函数的使用

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

    回调函数回调函数回调函数

    回调函数在计算机编程中是一种非常重要的机制,它允许我们将一个函数作为参数传递给另一个函数,以便在特定条件或事件发生时由被...回调函数是理解和掌握高级编程技巧的关键,尤其在需要处理事件驱动和分布式系统时。

    Delphi中DLL的回调函数使用

    回调函数是Delphi中DLL功能的一个重要组成部分,正确理解和使用回调函数可以极大地增强DLL的功能和灵活性。在实际开发中,回调函数常用于处理异步操作、事件通知、用户自定义行为等场景,因此对它的掌握对于Delphi...

    回调函数演示

    首先,理解回调函数的基本概念是关键。回调函数是一个在其定义之外被调用的函数,它通常是通过将函数指针作为参数传递给另一个函数来实现的。当这个接收函数完成其任务或遇到某个特定条件时,它会使用这个函数指针...

    vc回调函数例子

    首先,我们需要理解回调函数的基本概念。回调函数本质上是一个指针,它指向一个可执行的代码块(函数)。当被调用函数执行完毕或在特定条件下,会调用这个回调函数。在C++中,通常使用函数指针来实现回调,但也可以...

    回调函数demo

    总结,回调函数是异步编程的基础,理解并掌握它的使用对于编写高效、可维护的代码至关重要。在实际开发中,我们需要根据项目需求灵活运用回调函数,并考虑使用现代的异步处理机制来避免回调地狱,提高代码质量。

    C#回调函数

    首先,让我们理解回调函数的基本概念。在C#中,一个方法可以被定义为委托类型,委托实际上就是指向方法的引用。当我们将一个方法的实例赋值给委托变量时,就创建了一个回调。这样,我们就可以将这个委托作为参数传递...

    回调函数讲解

    ### 回调函数详解 #### 一、回调函数的基本概念 在计算机编程中,回调函数是一种特殊的函数,它被作为参数...通过理解和掌握回调函数的工作原理及其应用场景,开发者可以更高效地解决问题并构建出高质量的软件产品。

    dll 回调函数

    回调函数是DLL中一个重要的编程概念,它允许DLL将控制权交还给调用者,使得调用者可以在特定时刻执行自定义操作。 在Windows API中,回调函数通常是以函数指针的形式存在,它被作为参数传递给DLL函数,当DLL需要...

Global site tag (gtag.js) - Google Analytics