gpt4 book ai didi

design-patterns - 设计模式作为(缺失的)语言特性

转载 作者:行者123 更新时间:2023-12-04 15:04:27 24 4
gpt4 key购买 nike

有时人们将设计模式称为缺少的编程语言特性。为了避免关于什么是设计模式的争论,假设我们只考虑原始的 GoF 模式。例如,单例模式在 Scala 中消失了,它使用关键字 object 支持单例对象。 .

关于这方面的资源很少,尤其是 Are Design Patterns Missing Language Features来自 C2 wiki,或 Are design patterns really language weaknesses?来自 SO。但我找不到对这个问题的客观、客观和全面的报道。

理想情况下,我想要一个包含 GoF 设计模式(行)和一些主流编程语言(列)的矩阵,其中每个单元格将引用特定编程语言中关于模式的讨论。

为了避免争论应该考虑什么 PL,我们也可以解决这个问题并选择:Java(作为静态类型的 OO 代表)、Smalltalk(作为动态类型的代表)、Haskell(作为功能代表)、Scala(作为混合oo/功能代表),Lisp(作为元编程代表),JavaScript(作为基于原型(prototype)的代表)。并将其他 PL 留作旁注或评论。我知道我们可以就这个选择争论不休,但是对于这些语言来说,这已经很有趣了。

无论如何,这将始终是一个悬而未决的问题,但我觉得它是被问到的,这足以得到一个最佳答案。

也许这个矩阵已经存在于某个地方?还是有人有足够的知识来制作它?或者有人热衷于开始并使其成为维基答案,以便其他人可以继续?

最佳答案

设计模式中的模式是人们在使用不同语言进行编程时使用的不断增长的模式集的子集。作者非常清楚,这些模式仅适用于 OOP 语言,因此其中许多在该上下文之外没有意义。

同时,其他语言中有很多模式在 OOP 语言中是不需要的。考虑到在 C 或 Scheme 中实现时,对象本身就是一种模式。在汇编中,调用堆栈是一种模式。

关于design-patterns - 设计模式作为(缺失的)语言特性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4029287/

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