抽象类作为功能接口

抽象类作为功能接口,第1张

抽象类作为功能接口

自Lambda项目成立以来,这一直是一个重要的话题,并且引起了很多思考。Java语言首席架构师Brian Goetz强烈支持将lambda视为 功能
而非 对象 的观点。引用:

我相信,Java演进的最佳方向是鼓励一种更具功能性的编程风格。Lambda的作用主要是支持开发和使用更具功能性的库

我对Java的未来感到乐观,但是要前进,我们有时不得不放弃一些舒适的想法。Lambdas-are函数打开了大门。Lambdas-are-
objects将它们关闭。我们更愿意看到那些门保持打开状态。

这是引述来源的链接,这是布莱恩(Brian)的最新文章,重申了相同的哲学观点,并通过其他更实际的论点予以重申:

使模型更简单为各种VM优化打开了大门。(在这里,简捷身份是关键。)功能是价值。将它们建模为对象会使它们变得比所需的更重,更复杂。

在将此用例投入总线之前,我们进行了一些语料库分析,以发现与接口SAM相比,抽象类SAM的使用频率。我们发现在该语料库中,只有3%的lambda候选内部类实例将抽象类作为目标。其中大多数都适合于简单的重构,在该重构中,您添加了一个接受以接口为目标的lambda的构造函数/工厂。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5091831.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-16
下一篇 2022-11-16

发表评论

登录后才能评论

评论列表(0条)

保存