2011年写的一个测试java闭包的实例,在事件监听中用得比较多的设计模式!
闭包的特性
1.闭包的价值在于可以作为函数对象或者匿名函数,持有上下文数据,作为第一级对象进行传递和保存。
2.闭包广泛用于回调函数、函数式编程中。
3.函数可以访问函数外部的变量,并且与它建立联系,可以修改变量和读取到外部对变量的修改。
定义一个接口,通过接口来传递方法体
/**
* 回调函数
* 可以作为参数传给方法
*/
public interface Action{
public void excute(Object arg);
}
消息接收类
/**
* 消息接收
* 一个常规的属性和方法封装类
*/
public class To{
private int j = 0;
public void update(Object i) {
//持有To的上下文
j = (Integer) i;
System.out.println(j);
}
}
消息发出者
有一个参数是接口的方法,接口的方法参数是From类的上下文。
public class From{
private int i = 12112;