一、基本介绍:

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

二、回调函数和观察者模式的关系
    观察者模式定义对象间的一种一对多的依赖关系。
    当一个对象的状态发生改变时, 所有依赖于它的对象都得到通知并被自动更新。
    观察着模式是用接口回调的方法来实现的,可以说观察者模式是回调的一种应用。

三、简单例子

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 CallbackTest {
public static void main(String[] args) {
        FooBar foo = new FooBar();
        foo.setCallBack(new ICallBack() {
public void postExec() {
                System.out.println("在Test类中实现但不能被Test的对象引用,而由FooBar对象调用");
            }
        });
    }
}