`
zhengjunwei2007_163.com
  • 浏览: 130390 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java callback机制

    博客分类:
  • JAVA
阅读更多

 

http://apps.hi.baidu.com/share/detail/17760491

 

callback机制:回调机制是一种常见的设计模型,他把工作流内的某个功能,按照约定的接口暴露给外部使用者,为外部使用者提供数据,或要求外部使用者提供数据。

与COMMAND命令模式很类似。

 什么是回调函数
回调函数(callback Function),顾名思义,用于回调的函数。 回调函数只是一个功能片段,由用户按照回调函数调用约定来实现的一个函数。回调函数是一个工作流的一部分,由工作流来决定函数的调用(回调)时机。回调函数包含下面几个特性:
1、属于工作流的一个部分;
2、必须按照工作流指定的调用约定来申明(定义);
3、他的调用时机由工作流决定,回调函数的实现者不能直接调用回调函数来实现工作流的功能;

java回调机制:

软件模块之间总是存在着一定的接口,从调用方式上,可以把他们分为三类:同步调用、回调和异步调用。

 

同步调用:一种阻塞式调用,调用方要等待对方执行完毕才返回,它是一种单向调用;

回 调:一种双向调用模式,也就是说,被调用方在接口被调用时也会调用对方的接口;

异步调用:一种类似消息或事件的机制,不过它的调用方向刚好相反,接口的服务在收到某种讯息或发生某种事件时,会主动通知客户方(即调用客户方的接口)。

回调和异步调用的关系非常紧密:使用回调来实现异步消息的注册,通过异步调用来实现消息的通知。

 public interface ICallBack {

//需要回调的方法 public void postExec(); }

public class FooBar {

 //组合聚合原则

private ICallBack callBack;

 public void setCallBack(ICallBack callBack) {

 this.callBack = callBack; doSth(); }

public void doSth() {

callBack.postExec(); } }

 

public class Test {

public static void main(String[] args) {

FooBar foo = new FooBar();

foo.setCallBack(new ICallBack() {

public void postExec() {

System.out.println("在Test类中实现但不能被Test的对象引用,而由FooBar对象调用"); } });

 } }

1。首先回调方法的概念与“构造方法”的概念是不一样的,它不是指java中某个具有特殊意义或用途的方法。
2。称它为方法的“回调”更恰当一些,它是指方法的一种调用方式。任何一个被“回调”的方法,皆可称之为“回调方法”
3。方法的回调通常发生在“java接口”和“抽象类”的使用过程中。

 

 

######################

JAVA的CALLBACK通过接口来实现。  
  例:  
  1.class   A,class   B  
  2.class   A实现接口operate  
  3.class   B拥有一个参数为operate接口类型的函数test(operate   o)  
  4.class   A运行时调用class   B中test函数,以自身传入参数  
  5.class   B已取得A,就可以随时回调A所实现的operate接口中的方法

##############################

spring hibernate中使用callback机制:

 

 public Object execute(HibernateCallback action) throws DataAccessException {

  Session session = .....;

  try {

   Object result = action.doInHibernate(session);

//此处调用hibernatecallback回调接口即hibernate的实现

   flushIfNecessary(session, existingTransaction);

   return result;

  }

  catch (HibernateException ex) {

   throw convertHibernateAccessException(ex);

  }

  catch (RuntimeException ex) {

   // callback code threw application exception

   throw ex;

  }

  finally {

   SessionFactoryUtils.closeSessionIfNecessary(session, getSessionFactory());

  }

 }

 

public int delete(final String queryString) throws DataAccessException {

  Integer deleteCount = (Integer) execute(new HibernateCallback() {//定义回调实现

   public Object doInHibernate(Session session) throws HibernateException {

    checkWriteOperationAllowed(session);

    return new Integer(session.delete(queryString));//此处有hibernate的实现操作

   }

  });

  return deleteCount.intValue();

 }

 

 

 

 

 


分享到:
评论

相关推荐

    java CallBack(回调函数)

    Java回调函数,也称为Callback机制,是面向对象编程中一种重要的设计模式,它允许一个对象在其他对象执行特定操作后得到通知或者进行后续处理。在Java中,回调通常通过接口来实现,因为Java不支持函数指针。让我们...

    callback机制

    ### 回调机制详解 #### 一、回调函数的基本概念 **回调函数**是指通过函数指针被调用的一种特殊函数。在计算机编程领域中,当我们把一个函数的地址(通常被称为函数指针)作为参数传递给另一个函数时,如果这个...

    java中Callback简单使用总结

    当一个类A需要在完成某个任务后调用类B的方法,而这个调用顺序在编译时无法确定,这时就可以使用Callback机制。接下来我们将深入探讨Callback的概念、应用场景以及通过示例代码来理解其工作原理。 1. **Callback的...

    Callback_Androidjni_AndoidJNI层到Java层的调用_android_android回调_

    在Android开发中,Java Native Interface (JNI) 是一...这样的机制允许开发者充分利用C/C++的性能优势,同时保持Java的便利性和跨平台性。在实际项目中,这种回调机制常用于高性能计算、游戏引擎、底层硬件交互等场景。

    java事件处理机制

    事件处理机制的核心思想是回调(Callback),即当事件发生时,事件源会通知已注册的监听器,调用它们相应的方法。这种设计模式使得代码结构更加清晰,提高了代码的可复用性和可维护性。 总结一下,Java事件处理机制...

    Android APP 用interface 接口的形式对jni进行回调,实例测试

    在Android应用开发中,JNI(Java Native Interface)是Java与本地代码交互的一种方式,它允许开发者使用C++、C等语言编写部分性能...理解和熟练掌握JNI接口回调机制,对于提升Android应用的性能和功能具有重要意义。

    Java回调机制

    Java回调机制是编程中一种非常重要的设计模式,它在异步编程、事件驱动编程和通信中扮演着核心角色。在Java中,回调机制允许一个对象(通常被称为回调对象)向另一个对象注册自身的方法,以便在特定事件发生时,被...

    java代理机制 JDK动态代理和cglib代理 详解

    Java代理机制是Java编程中一个重要的特性,它允许我们在不修改原有代码的基础上,为已有类增加额外的功能。本文将深入探讨两种主要的Java代理实现:JDK动态代理和CGLIB代理。 一、JDK动态代理 JDK动态代理基于接口...

    JAVA_API1.6文档(中文)

    java.awt.dnd Drag 和 Drop 是一种直接操作动作,在许多图形用户界面系统中都会遇到它,它提供了一种机制,能够在两个与 GUI 中显示元素逻辑相关的实体之间传输信息。 java.awt.event 提供处理由 AWT 组件所激发的...

    callBackExample

    在Java或Android开发中,回调机制经常用于处理异步操作,例如网络请求、文件读写等,当操作完成时,通过回调函数传递结果给调用者。在Android系统中,回调机制广泛应用于事件监听、数据加载等多个场景。 标题...

    CallBack_DEMO 回调

    在本示例"CallBack_DEMO"中,我们可能正在探讨如何在Java或其他编程语言中实现回调机制。回调通常与异步编程相关,尤其是在处理I/O操作、网络请求或者时间事件时,它能让程序在执行完成后继续执行后续操作,而不是...

    hello-jniCallback_jni_android_

    "hello-jniCallback"是一个常见的示例项目,用于演示如何在Android应用中使用JNI来调用C/C++代码,并实现回调机制。这个项目可以帮助开发者理解JNI的基本用法以及如何在Java和原生代码之间传递数据。 1. **JNI基础...

    JNI 回调函数 Callback

    回调函数Callback是JNI中一个重要的概念,它使得Java层能够调用C/C++的函数,反之亦然。 **JNI基础** 1. **JNI接口定义**:在Java代码中,通过`native`关键字声明本地方法。这些方法没有具体实现,而是通过JNI接口...

    Java基础核心理解+什么是回调即回调机制讲解

    ### Java基础核心理解+什么是回调及回调机制讲解 #### 一、回调机制的引入与应用场景 在软件开发中,特别是面向对象编程语言如Java中,模块间的交互是至关重要的。根据调用方式的不同,可以将模块间的交互分为三种...

    JAAS:灵活的Java安全机制

    ### JAAS:灵活的Java安全机制 #### 一、引言 Java Authentication and Authorization Service (JAAS, Java验证和授权API)为Java应用程序提供了一种扩展标准Java 2安全模型的方法。通过添加验证主题(即用户或其他...

    RMI CallBack

    远程方法调用(Remote Method Invocation,RMI)是Java中的一种机制,允许一个对象在某个JVM上执行另一个JVM上的对象的方法。"RMI CallBack"是指在RMI的基础上实现回调功能,使得服务器端可以主动调用客户端的方法,...

    JniCallback.zip_Android jni_android_jni android_jni callback_jni

    JNI回调机制允许本地代码调用Java对象的方法,这在处理异步事件、周期性任务或需要从本地代码触发Java方法的情况时非常有用。在Android应用中,我们通常会定义一个Java类,该类包含一个本地方法声明,并在本地代码...

Global site tag (gtag.js) - Google Analytics