锁定老帖子 主题:JAVA 需要引入闭包吗
该帖已经被评为精华帖
|
|
---|---|
作者 | 正文 |
发表时间:2009-06-11
icefishc 写道 步行者 写道 bookong 写道 如果真引入闭包,写代码是少了,恐怕调试会更痛苦一点。
不光这些 1,函数做为一级元素,不光要import类了,还要import函数 或者 就像 python一样 要把 文件粒度改为 module了 2,那JAVA中的一切皆对象,就要被打破了 为什么 调试会痛苦一些? 如果函数也是对象 那么不久符合一切皆对象的了么。 我觉得 闭包更像对象方法 而不是对象 |
|
返回顶楼 | |
发表时间:2009-06-11
忍不住说句.
OO不是银弹. 做开发多年,最大的收获之一是放下了OO包袱. KISS才是最高准则. |
|
返回顶楼 | |
发表时间:2009-06-11
akunspy 写道 忍不住说句.
OO不是银弹. 做开发多年,最大的收获之一是放下了OO包袱. KISS才是最高准则. 我觉得这才像oo.呵呵 记住封装变化这个本质,其余的都可放下。 |
|
返回顶楼 | |
发表时间:2009-06-11
akunspy 写道 忍不住说句.
OO不是银弹. 做开发多年,最大的收获之一是放下了OO包袱. KISS才是最高准则. KISS??? 请指点一下 什么是KISS |
|
返回顶楼 | |
发表时间:2009-06-11
最后修改:2009-06-11
步行者 写道 WhisperXD 写道 太懒 不想为了解决一个方法学两种或多种实现。
我想这足够block这个需求了。除非做不到。 一个方法学 如果有多种实现 ,那也是符合这个方法学的 OO实现中 引入闭包 就需要做一个思维转换,对象 函数化 我是说不想学。 不是方法学,你可能看错了。 我对用什么方法解决问题并不关心。 我关心的是如何解决问题 如果能解决问题,那我关心的是如何成本最低。 包括学习成本在内都是考虑的因素。 包括其他人看代码以后的学习成本,如果一个代码已经被无数人描述为精妙到很难理解,那么除非它有不可替代的作用,否则就是垃圾一堆。 语言只是工具,工具的作用是什么不需我重复了,高效低成本解决问题就行了。 |
|
返回顶楼 | |
发表时间:2009-06-11
WhisperXD 写道 步行者 写道 WhisperXD 写道 太懒 不想为了解决一个方法学两种或多种实现。
我想这足够block这个需求了。除非做不到。 一个方法学 如果有多种实现 ,那也是符合这个方法学的 OO实现中 引入闭包 就需要做一个思维转换,对象 函数化 我是说不想学。 不是方法学,你可能看错了。 我对用什么方法解决问题并不关心。 我关心的是如何解决问题 如果能解决问题,那我关心的是如何成本最低。 包括学习成本在内都是考虑的因素。 包括其他人看代码以后的学习成本,如果一个代码已经被无数人描述为精妙到很难理解,那么除非它有不可替代的作用,否则就是垃圾一堆。 语言只是工具,工具的作用是什么不需我重复了,高效低成本解决问题就行了。 呵呵 看错了 不过只有实现 和 设计契合,才能有更高可维护性 确实 我现在就要怀疑一下 闭包 有没有什么不可替代的作用 |
|
返回顶楼 | |
发表时间:2009-06-11
我觉得需要引入,多一种方法有什么不好,觉得不好用的同学可以不用好了。没有这个功能想用也用不了,有了这个功能,想用就用,不想用可以不用。
|
|
返回顶楼 | |
发表时间:2009-06-11
pancras 写道 我觉得需要引入,多一种方法有什么不好,觉得不好用的同学可以不用好了。没有这个功能想用也用不了,有了这个功能,想用就用,不想用可以不用。
呵呵 不过引入后 用可能对JAVA的结构产生影响 而且 如果一些有用的API用到了闭包, 那么你不想用也得用了 |
|
返回顶楼 | |
发表时间: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 都可以用闭包了) |
|
返回顶楼 | |
发表时间:2009-06-11
java 不支持闭包,不过它可以用匿名的内部类来实现闭包,当然实现的代码让人看起来不是很舒服。
引入闭包,确实可以让代码简洁不少,让程序员可以省去一些额外附加代码。 至于会不会破坏java的结构? 就目前来看很多面向对象的语言(python ruby groovy C#)都已经有了,也听说这些语言有了闭包,而影响了什么. 语言就是一种工具,好不好看是次要的,重要的是好用. |
|
返回顶楼 | |