原文地址:http://cleancodedevelopment-qualityseal.blogspot.com/2012/10/understanding-callbacks-with-java.html
你好,今天我要和大家分享一些东西,举例来说这个在JavaScript中用的很多。我要讲讲回调(callbacks)。你知道什么时候用,怎么用这个吗?你真的理解了它在java环境中的用法了吗?当我也问我自己这些问题,这也是我开始研究这些的原因。这个背后的思想是控制反转( PS:维基百科的解释是控制反转(Inversion of Control,缩写为IoC),是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度。)这个范例描述了框架(framework)的工作方式,也以“好莱坞原则:不要打电话给我们,我们会打给你("Hollywood principle - Don't call me, we will call you)”为人们所熟知。
简单的Java里的回调模式来理解它,具体的例子在下面:
1 interface CallBack { 2 void methodToCallBack(); 3 } 4 5 class CallBackImpl implements CallBack { 6 public void methodToCallBack() { 7 System.out.println("I've been called back"); 8 } 9 } 10 11 class Caller { 12 13 public void register(CallBack callback) { 14 callback.methodToCallBack(); 15 } 16 17 public static void main(String[] args) { 18 Caller caller = new Caller(); 19 CallBack callBack = new CallBackImpl(); 20 caller.register(callBack); 21 } 22 }