gpt4 book ai didi

java - 在 Java8 中引入 lambda 会改变或影响哪种 GoF 设计模式?

转载 作者:IT老高 更新时间:2023-10-28 20:35:27 26 4
gpt4 key购买 nike

许多人声称 GoF 设计模式的最大部分只是针对缺少一流功能的解决方法。现在 Java 即将获得 lambda 表达式,其中哪些模式会受到它们的影响?哪些可以显着简化或概括?哪些将基本保持不变?欢迎任何实际示例。

最佳答案

我认为您会看到行为模式的最大变化。

模板方法 - 模板方法将越来越少使用,相反我们将看到对象将函数传递给 AbstractTemplate 而不是继承 AbstractTemplate。我很久以前在博客上写过这个:http://hamletdarcy.blogspot.ch/2007/11/groovy-closures-end-of-template-method.html

观察者模式 - 观察者变得简化了,因为您不再需要保留在新事件上更新的观察者列表,而是保留需要在新事件中回调的函数列表.所以不再有 Observer 接口(interface),只有函数对象。

状态/策略模式 - 我将它们组合在一起,因为它们在结构上是相同的,只是意图不同。策略的使用变得更加普遍,因为它更易于实现。您不需要父策略和策略子类,只需要函数。因此,只需将函数作为参数传递很简单,这实际上是使用策略模式。

总的来说,我认为任何需要单一方法接口(interface)的模式都更容易实现。这将产生两种效果。 1)我们将更多地使用这些功能模式,并且 2)我们将不再将它们称为模式,而只是将它们称为“传递函数”。

您可以随心所欲,但我认为“JavaScript 的优秀部分”很好地介绍了如何利用语言中的函数。你可以拿起它来阅读它!

关于java - 在 Java8 中引入 lambda 会改变或影响哪种 GoF 设计模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17012159/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com