有时人们将设计模式称为缺失的编程语言特性。为避免关于什么是设计模式的辩论,让我们只考虑原始的GoF模式。例如,在Scala中支持使用关键字
关于此问题,有一些资源可供参考,特别是来自C2 wiki的Are Design Patterns Missing Language Features或来自SO的Are design patterns really language weaknesses?。但是我找不到一个非意见主张、客观和全面的解决方案。
理想情况下,我希望有一个矩阵,其中包含GoF设计模式(行)和一些主流编程语言(列),每个单元格都会涉及特定编程语言中该模式的讨论。
为避免关于要考虑哪种PL的辩论,我们还可以选择Java(作为静态类型的OO代表)、Smalltalk(作为动态类型的代表)、Haskell(作为函数式代表)、Scala(作为混合oo/函数式代表)、Lisp(作为元编程代表)、JavaScript(作为基于原型的代表)。其他PL可以作为附注或评论留下。我知道我们可以就这个选择进行争论,但对于这些语言来说,已经足够有趣了。
无论如何,这始终是一个开放性问题,但我认为提出这样的问题已经足够专注,以获得最佳答案。
也许这个矩阵已经存在于某处?或者有人具备足够的知识来制作它?或者有人足够热心,开始并将其变成维基答案,以便其他人可以继续?
object
的单例模式消失了。关于此问题,有一些资源可供参考,特别是来自C2 wiki的Are Design Patterns Missing Language Features或来自SO的Are design patterns really language weaknesses?。但是我找不到一个非意见主张、客观和全面的解决方案。
理想情况下,我希望有一个矩阵,其中包含GoF设计模式(行)和一些主流编程语言(列),每个单元格都会涉及特定编程语言中该模式的讨论。
为避免关于要考虑哪种PL的辩论,我们还可以选择Java(作为静态类型的OO代表)、Smalltalk(作为动态类型的代表)、Haskell(作为函数式代表)、Scala(作为混合oo/函数式代表)、Lisp(作为元编程代表)、JavaScript(作为基于原型的代表)。其他PL可以作为附注或评论留下。我知道我们可以就这个选择进行争论,但对于这些语言来说,已经足够有趣了。
无论如何,这始终是一个开放性问题,但我认为提出这样的问题已经足够专注,以获得最佳答案。
也许这个矩阵已经存在于某处?或者有人具备足够的知识来制作它?或者有人足够热心,开始并将其变成维基答案,以便其他人可以继续?