Design patterns GoF有什么模式吗?

Design patterns GoF有什么模式吗?,design-patterns,Design Patterns,我目前正在学习设计模式考试(明天将举行…)。在一次“测试考试”中,我发现了以下问题: Jim Coplien在受邀演讲中说,甚至没有一个 GoF手册中的设计模式。你对此有什么看法 因为我没有参加这个特别的讲座(那是上学期;),我不知道他可能是什么意思。我没有证据证明吉姆·科普利恩说过这句话,但我认为这无关紧要 你认为他这句话是什么意思? (我不确定这个问题是否适合这个论坛,但是,我想问。)根据GoF自己的定义,它充满了设计模式。因此,通过推断,Coplien对设计模式有不同的定义,或者Copli

我目前正在学习设计模式考试(明天将举行…)。在一次“测试考试”中,我发现了以下问题:

Jim Coplien在受邀演讲中说,甚至没有一个 GoF手册中的设计模式。你对此有什么看法

因为我没有参加这个特别的讲座(那是上学期;),我不知道他可能是什么意思。我没有证据证明吉姆·科普利恩说过这句话,但我认为这无关紧要

你认为他这句话是什么意思?


(我不确定这个问题是否适合这个论坛,但是,我想问。)

根据GoF自己的定义,它充满了设计模式。因此,通过推断,Coplien对设计模式有不同的定义,或者Coplien误解或曲解了GoF的定义,或者他认为GoF的定义与GoF模式不匹配

该问题请您描述两种定义之间的差异,并提供您对哪种定义的意见。可能是你的理性观点,就像在学术界一样,你的观点(方法论)的理由比观点本身重要得多。

模式:这个概念以亚历山大的工作为基础 GoF声称其图案灵感来自克里斯托弗·亚历山大(Christopher Alexander)(正如他们在本书前面所说的),他在更广泛的设计领域推广了该术语。对Alexander来说,模式:始终是模式语言的一个元素;有助于加深人的感情;而且在本质上总是几何的。至少有一些GoF模式在这些点中的至少一点上失败,有几个在所有三点上都失败。尽管“模式”是一个中性的英语单词,但GoF作品的文化和历史根源,加上他们对亚历山大灵感的引用,使其受制于其祖先的基本标准的判断,因此它是缺乏的。尽管他们知道,并表示他们知道,他们与亚历山大有些不同,但他们仍然选择使用他精心设计、研究和推广的术语,我认为他们对此负责。(这就是说,他们都是很有价值的熟人;我与几年前我们失去的约翰·维利塞德斯关系密切,并与理查德·赫尔姆和埃里克·伽马就这背后的深层次问题进行了很好的对话。我与拉尔夫的讨论没有那么有趣,因为他们只停留在工程层面。)

历史根源 言之有物。GoF(或整个软件社区)在写这本书的时候并没有很好地理解亚历山大对“模式”一词的理解,但他们建立在当时的粗俗观念之上,这有三个来源:1。埃里希·伽马博士论文;2.拉尔夫·约翰逊的框架工作,以及3。C++习语书(你可以在GOF书中找到它的解释,它的来源在第6.3节)。(哦,克努斯也有影响力。)我继续向作者提出质疑,但人们喜欢它,他们喜欢人们喜欢它,所以势头继续

几年后(2004年12月2日),一位共和党人写信给我,描述他最终理解亚历山大试图传达的内容的“啊哈”经历。这与GoF书的内容有很大不同:

最后,在漫长曲折的道路上摸索“生成模式”和零碎增长。。。。 主要是通过软件的一些有趣的通用属性(无标度和 小世界)

有时候我有点慢。。。但最终还是到达了那里

GoF模式解决了偶然而非本质的复杂性问题 不幸的是,人们发现它们很有用,这是对现代编程语言的控诉。这些语言没有适当的结构来表达亚历山大认为是模式特征的破缺对称,这是复杂设计的固有特征(秩序的本质,第187页:“……一般来说,简化的新古典主义类型的大型对称很少有助于事物的生命,因为在世界上任何复杂的整体中,几乎总是存在着复杂的、不对称的力量,在位置、背景和功能等方面起作用,需要打破对称性。”同前,第63-4页:大自然也创造了美丽的结构,这些结构是由结构保持变换的反复应用所控制的。在这方面,我认为有必要指出,我所称的结构保持变换与物理学中所谓的“对称破缺”密切相关。”)java对这个问题尤其不好,但是它的祖先SimalTalk。C++有很多特征来描述局部对称性破坏,但是大多数人并不真正知道如何使用它们。Richard Gabriel -他也与亚力山大密切合作,他有类似CLOS的语言和他的信用计划——他根本不理解。e GoF模式,因为一种设计合理的语言(如CLOS或Scheme)不需要它们。我基本上也是这样

设计运动 这背后有很多设计理论可以追溯到设计运动(Thackara(“现代主义后的设计”,1989年)、Naur、Alexander、Cross(“设计方法的发展”,1984年)和其他20世纪80年代的作者)。一直以来,令我惊讶的是,程序员对这一系列文献所知甚少,而根据当时设计运动工作的明显发现,CS思维有多么错误。我们这些创建模式学科的人(Hillside Group最初的7人)早在1993年,我们就已经熟悉了这些文献的主要主题。PLoP会议形成了一个从这些基础上彻底演变而来的文献体系,它更关注神秘的知识,而不是亚历山大所追求的“没有名字的品质”

成语的起源