任何程序都能实现回调函数,其基本思想都是一样,具体实现起来它们之间稍微有所不同,以下是我通过java,php,javaScript三者如何实回调函数来说明,废话少说,行动!

java的回调函数,一般是通过定义接口来做,当然也可以定义抽象类.

具体如下:

<1>接口定义: 


package com; 

/* 

* 定义一个接口 

*/ 

public interface CallBack { 

 /*定义一个抽象方法*/ 

 abstract void doExec(String str); 

} 


<2>定义一个类: 


package com; 

import com.CallBack; 

/** 

* 定义一个类 

* @author Administrator 

*/ 

public class DoExcute{ 

 /** 

 * 这个方法会用到回调方法 

 * @param name 随便传一个参数进去 

 * @param callBack 回调参数 

 */ 

public static void doExcute(String name,CallBack callBack) { 

 callBack.doExec(name); 

} 

 public static void main(String args[]) 

 { 

 String name="莫小明"; 

 //第一次调用 

 DoExcute.doExcute(name, new CallBack(){ 

 public void doExec(String strCal){ 

 String str="大家好,我叫:"+strCal+"叫偶小明哥就行了.嘿嘿."; 

 //执行具体的操作功能 

 //这里就做一个最最简单的打印功能吧 

 System.out.println(str); 

 } 

 }); 


 //第二次调用,实现了另一功能 

 DoExcute.doExcute(name, new CallBack(){ 

 public void doExec(String strCal){ 

 //执行你想要的功能,或则在这里又调用一个新方法 

 //,甚至new 一个新的类都有可能.具体要看你怎么设计合理性 

 p(strCal); 

 } 

 }); 

 // 


 } 

 //简单的测试一个东西 

 private static void p(String name) 

{ 

 String str=("莫小明".equals(name))? "是帅哥!":"是野兽"; 

 System.out.println(name+str); 

} 

}




PHP的回调函数,就目前我测试,我只知道这样做.

<?php 

/* 

* 定义一个类 

*/ 

class DoHepler{ 

 /* 

* 这个方法执行某种功能,该功能交给回调函数来实现 

* 参数callBack:回调函数 

*/ 

public static function doExec($callBack) 

{ 

 $callBack(); 

} 

} 

//第一次调用,将回调函数callBack0传入: 

DoHepler::doExec('callBack0'); 

//第二次调用,将回调函数callBack1传入: 

DoHepler::doExec('callBack1'); 

//回调函数callBack0 

function callBack0() 

{ 

 //复杂的逻辑留给你自己来处理...... 

 echo 'run now !'; 

} 

//回调函数callBack1 

function callBack1(){ 

 //复杂的逻辑留给你自己来处理...... 

 print("<hr> goto beijing !"); 

} 

?>



JS中的做法.JS中的做法稍微灵活.........具体方法比较多,我这里只是其中一种

<script language="jscript"> 

// 

function A(p,callback){ 

 //带都少个参数都可以 

 alert(p); 

 callback(); 

} 

function __Callback_0(){ 

 //这里可能做一系列的变化 

 alert("call back!"); 

} 


A("<br>1.",__Callback_0); 

//直接将函数做为参数传递 

A("<br>2.",function c(){alert("go go !!!!!!!!!");}); 

//直接将函数做为参数传递 

A("<hr>3.",function c(){ 

 var i=25; 

 var c="小明哥"; 

 var x="男"; 

 document.write("名称:"+c+",性别:"+x+",年龄:"+i); 

}); 

</script>



小结:回调函数在程序设计中起到非常重要的作用,如用得当,最整个程序有着非常重要的作用.我们一般在必要时候和在合理的地方使用某种特殊的设计(并非处处使用),会给程序设计添加一份绚丽的一道光....