考试网 >> IT认证 >> JAVA >> JAVA指导 >> 关于Java 语言中的函数编程

关于Java 语言中的函数编程

发布时间:2006-06-28 11:10     点击:
分页:上一页  1 2 3 [4] 5 6 7 8 9 10  下一页  后10页

  public void run()

  {

  parseData();

  }

  };

  

  方法 parseData 确实 封闭(因而有了名字 “闭包”)在 Runnable 对象的实例 worker 中。它可以像数据一样在方法之间传递,并可以在任何时间通过发送消息(称为 run ) 给 worker 对象而执行。

  

  更多的例子

  

  另一个在面向对象世界中使用闭包和高阶函数的例子是 Visitor 模式。如果还不熟悉这种模式,请参阅 参考资料以了解更多有关它的内容。基本上,Visitor 模式展现一个称为 Visitor 的参与者,该参与者的实例由一个复合对象(或者数据结构)接收,并应用到这个数据结构的每一个构成节点。Visitor 对象实质上 封闭 了处理节点/元素的逻辑,使用数据结构的 accept (visitor) 方法作为应用逻辑的高阶函数。

  

  通过使用适当不同的 Visitor 对象(即闭包),可以对数据结构的元素应用完全不同的处理逻辑。与此类似,可以向不同的高阶函数传递同样的闭包,以用另一种方法处理数据结构(例如,这个新的高阶函数可以实现不同逻辑,用于遍历所有构成元素)。

  

  类 java.utils.Collections 提供了另一个例子,这个类在版本 1.2 以后成为了 Java 2 SDK 的一部分。它提供的一种实用程序方法是对在 java.util.List 中包含的元素排序。不过,它使调用者可以将排序列表元素的逻辑封装到一个类型为 java.util.Comparator 的对象中,其中 Comparator 对象作为第二个参数传递给排序方法。

  

  

  创建闭包

  

  广意地说,有两种生成闭包的技术,使用闭包的代码可以等效地使用这两种技术。创建闭包后,可以以统一的方式传递它,也可以向它发送消息以让它执行其封装的逻辑。因此,技术的选择是偏好的问题,在某些情况下也与环境有关。

  

  

  

  
分页:上一页  1 2 3 [4] 5 6 7 8 9 10  下一页  后10页
版权申明:未经书面授权请勿转载本站信息!!作品版权归所属媒体与作者所有!!
发表评论: 匿名发表 用户名: 查看评论
您将承担一切因您的行为、言论而直接或间接导致的民事或刑事法律责任
留言板管理人员有权保留或删除其管辖留言中的任意内容
本站提醒:不要进行人身攻击。谢谢配合。
在本站搜索相关信息
2003-2005 Ksw123.com All Rights Reserved. - TOP
Copyright © 2006 Ksw123.com. All rights reserved.中国考题网 版权所有