你可以命名多少非GOF模式?

时间:2009-11-14 05:57:48

标签: design-patterns

您可以命名多少个不是GOF模式的设计模式?

你有任何列出这些名字的网页链接吗?

4 个答案:

答案 0 :(得分:8)

Wikipedia page始终是一个好的起点。链接表中的“In Design Patterns”列中会告诉您哪些模式在GOF书中,哪些模式不在。

答案 1 :(得分:5)

为了它的价值,Design Patterns on Wikipedia有一个设计模式列表,包括这些模式是否出现在GOF书中的信息。

在我的脑海中,GOF排除了与并发相关的一整类设计模式,包括双重检查锁定,旋转锁定以及与pi calculus相关的几乎所有内容。

此外,一些模式似乎自然地遵循其他编程范例:

  • 功能编程中有很多模式没有出现在GOF书中。经常使用的设计模式涉及使用累加器变量将非尾递归函数转换为尾递归函数。此外,monad的概念或其使用的概念与原始开发人员完全不同。 GOF书中完全没有不可变对象。

  • Lisp的宏系统可能被认为是一种设计模式,或指示一种模式。

  • 我从未使用过基于堆栈的编程语言,但我敢打赌Forth程序员有很多技巧可以让他们的算法干净地映射到堆栈。

  • 以抽象的方式,您可以将关系数据库模式中的表之间的关系视为一种设计模式:1对多,多对一,多对多,一对-to-之一。更重要的是,有可预测的方法来建模层次数据,这是modeling tagged unions in SQL的一种相当奇特的方式。

答案 2 :(得分:2)

只有少数其他oo 设计模式。一个是空对象(我忘了另一个)。这些加上23加法是正交和完整的。真的没有了。其他一切大多只是这25个左右的组合。

答案 3 :(得分:1)

Brian指出的维基百科列表确实相当全面。我很惊讶地找到了幽冥......