论坛首页 Java企业应用论坛

JAVA 需要引入闭包吗

浏览 38516 次
该帖已经被评为精华帖
作者 正文
   发表时间:2009-06-11  
icefishc 写道
步行者 写道
bookong 写道
如果真引入闭包,写代码是少了,恐怕调试会更痛苦一点。

不光这些
1,函数做为一级元素,不光要import类了,还要import函数
或者 就像 python一样 要把 文件粒度改为 module了
2,那JAVA中的一切皆对象,就要被打破了

为什么 调试会痛苦一些?
如果函数也是对象 那么不久符合一切皆对象的了么。


我觉得 闭包更像对象方法
而不是对象
0 请登录后投票
   发表时间:2009-06-11  
忍不住说句.
OO不是银弹.
做开发多年,最大的收获之一是放下了OO包袱.
KISS才是最高准则.
0 请登录后投票
   发表时间:2009-06-11  
akunspy 写道
忍不住说句.
OO不是银弹.
做开发多年,最大的收获之一是放下了OO包袱.
KISS才是最高准则.


我觉得这才像oo.呵呵

记住封装变化这个本质,其余的都可放下。
0 请登录后投票
   发表时间:2009-06-11  
akunspy 写道
忍不住说句.
OO不是银弹.
做开发多年,最大的收获之一是放下了OO包袱.
KISS才是最高准则.


KISS??? 请指点一下
什么是KISS
0 请登录后投票
   发表时间:2009-06-11   最后修改:2009-06-11
步行者 写道
WhisperXD 写道
太懒 不想为了解决一个方法学两种或多种实现。

我想这足够block这个需求了。除非做不到。


一个方法学 如果有多种实现 ,那也是符合这个方法学的

OO实现中 引入闭包 就需要做一个思维转换,对象 函数化


我是说不想学。

不是方法学,你可能看错了。

我对用什么方法解决问题并不关心。

我关心的是如何解决问题

如果能解决问题,那我关心的是如何成本最低。

包括学习成本在内都是考虑的因素。

包括其他人看代码以后的学习成本,如果一个代码已经被无数人描述为精妙到很难理解,那么除非它有不可替代的作用,否则就是垃圾一堆。

语言只是工具,工具的作用是什么不需我重复了,高效低成本解决问题就行了。
0 请登录后投票
   发表时间:2009-06-11  
WhisperXD 写道
步行者 写道
WhisperXD 写道
太懒 不想为了解决一个方法学两种或多种实现。

我想这足够block这个需求了。除非做不到。


一个方法学 如果有多种实现 ,那也是符合这个方法学的

OO实现中 引入闭包 就需要做一个思维转换,对象 函数化


我是说不想学。

不是方法学,你可能看错了。

我对用什么方法解决问题并不关心。

我关心的是如何解决问题

如果能解决问题,那我关心的是如何成本最低。

包括学习成本在内都是考虑的因素。

包括其他人看代码以后的学习成本,如果一个代码已经被无数人描述为精妙到很难理解,那么除非它有不可替代的作用,否则就是垃圾一堆。

语言只是工具,工具的作用是什么不需我重复了,高效低成本解决问题就行了。



呵呵 看错了

不过只有实现 和 设计契合,才能有更高可维护性
确实 我现在就要怀疑一下 闭包 有没有什么不可替代的作用

0 请登录后投票
   发表时间:2009-06-11  
我觉得需要引入,多一种方法有什么不好,觉得不好用的同学可以不用好了。没有这个功能想用也用不了,有了这个功能,想用就用,不想用可以不用。
0 请登录后投票
   发表时间:2009-06-11  
pancras 写道
我觉得需要引入,多一种方法有什么不好,觉得不好用的同学可以不用好了。没有这个功能想用也用不了,有了这个功能,想用就用,不想用可以不用。


呵呵 不过引入后 用可能对JAVA的结构产生影响
而且 如果一些有用的API用到了闭包,
那么你不想用也得用了
0 请登录后投票
   发表时间:2009-06-11  
akunspy 写道
忍不住说句.
OO不是银弹.
做开发多年,最大的收获之一是放下了OO包袱.
KISS才是最高准则.


Runnable 这些魔法词汇是学习成本非常高的,不过一些打拼过来的老同志们都觉得理所当然了,不想改了,痛苦的学习经验也会让他们非常抵触一些新特性,就算能减轻劳动强度,他们都不愿意。

给两个链接。不喜 haskell 勿入……
Haskell 类型系统 http://haskell.org/haskellwiki/Simonpj/Talk:FunWithTypeFuns
如何放弃 OOP http://night-stalker.iteye.com/blog/381756


话说世界上几乎 100% 的程序员都用过闭包了,也无所谓学习成本了。
javascript 的函数都是闭包呢……

另外还有就是 Tiobe 前十,就剩 Java 不支持闭包吧。迟早都会支持的。(在前不久 Apple 公布的 GCD 里面,连 C 都可以用闭包了)
0 请登录后投票
   发表时间:2009-06-11  
java 不支持闭包,不过它可以用匿名的内部类来实现闭包,当然实现的代码让人看起来不是很舒服。
引入闭包,确实可以让代码简洁不少,让程序员可以省去一些额外附加代码。
至于会不会破坏java的结构? 就目前来看很多面向对象的语言(python ruby groovy C#)都已经有了,也听说这些语言有了闭包,而影响了什么.
语言就是一种工具,好不好看是次要的,重要的是好用.
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics