Java中的闭包(Closure)和回调

来源:互联网 发布:数据分析师专业 编辑:程序博客网 时间:2024/06/04 17:42

上网看了许多关于Java中的闭包(Closure)和回调的博文,总算是弄清晰了,再次写下自己的笔记

  1、闭包

定义:闭包允许你将一些行为封装,将它像一个对象一样传来递去,而且它依然能够访问 到原来第一次声明时的上下文。 

闭包允许我们创建函数指针,并把它们作为参数传递(在JAVA中,闭包是通过“接口+内部类”实现

2、回调:就是程序员A写了一段程序(程序a),其中预留有回调函数接口,并封装好了该程序。程序员B要让a调用自己的程序b中的一个方法,于是,他通过a中的接口回调自己b中的方法。

计算机程序设计中,回调函数,或简称回调,是指通过函数参数传递到其它代码的,某一块可执行代码引用。这一设计允许了底层代码调用在高层定义的子程序 但是在Java里面,无法传递方法指针,所以我们只能使用接口来实现回调。

3、为什么需要闭包。
  闭包的价值在于可以作为函数对象或者匿名函数,持有上下文数据,作为第一级对象进行传
递和保存。闭包广泛用于回调函数、函数式编程中。

ps:

个人理解:定义一个接口,匿名内部类实现该接口(该函数方法(就为回调函数)),然后set进一个类留有接口的调用类里面,该类调用的实际上是匿名内部类的方法。(实际上就是将一个代码块/函数以参数的形式传递)

个人顺序参考

1、http://www.cnblogs.com/chenjunbiao/archive/2011/01/26/1944417.html

2、http://blog.sina.com.cn/s/blog_8d2da7430100xjk5.html

3、http://blog.csdn.net/longyulu/article/details/35236041

4、http://www.cnblogs.com/heshuchao/p/5376298.html    很形象生动的讲述!~



0 0