是否存在明确的设计模式列表?

时间:2008-09-25 21:38:04

标签: design-patterns

设计模式的概念来自哪里,谁决定了什么是什么,不是模式,并给出了他们的名字?是否有一个官方组织定义它们,或者它们是否通过一些社区共识存在?

12 个答案:

答案 0 :(得分:67)

我认为有一个基本的“设计模式的生命周期”

  1. 作者在书中写下设计模式。
  2. 书籍读得很好,可能是畅销书
  3. 设计模式进入公众意识,获得思想共享。
  4. 使用设计模式。它运作良好。设计模式得到更多的思想分享
  5. 设计模式成为灵丹妙药,过度使用。
  6. 不同的作者写道“设计模式被认为是有害的”
  7. 设计模式变为Anti Pattern
  8. 不同的作家成名,写满了新设计模式的书......

答案 1 :(得分:24)

大多数人都会指出{em>设计模式:可重用面向对象软件的元素这本书的"Gang of Four"(Erich Gamma,Richard Helm,Ralph Johnson和John Vlissides)。没有真正明确的清单,因为有用的设计模式肯定会一直被发现。

答案 2 :(得分:12)

维基百科有一个很好的清单。 http://en.wikipedia.org/wiki/Design_pattern_(computer_science)

大多数是通过社区共识(社区是那些阅读过设计模式或代码完整的人:/)

答案 3 :(得分:8)

简短回答:不。

答案很长:因为如果有人设计某些东西,并且它往往被其他人重复使用,那么新的“设计模式”将被创建(或被发现?)

实际上,现有应用程序中的设计模式数量可能很大,但尚未对它们进行分类。

我会在前面添加这两个链接:

http://martinfowler.com/eaaCatalog/

http://c2.com/ppr/

答案 4 :(得分:4)

没有确定的清单。模式是被发现的,而不是发明的,因此没有任何组织可以说“这是一种模式”和“这不是模式”。即使有一个,也不会对任何人有用。

尽管如此,“着名”模式是设计模式或GOF书中描述的模式。

答案 5 :(得分:4)

识别anti-patterns

也很有用

答案 6 :(得分:4)

这是一个很好的模式列表(来自企业应用程序架构的模式一书):

http://martinfowler.com/eaaCatalog/

答案 7 :(得分:4)

设计模式的概念是由克里斯托弗亚历山大创造的,同时在建筑和城镇内写下建筑模式。同样,随着工程师在面向对象设计方法方面获得更多经验,模式已经出现。

没有一个官方财团定义什么是模式,什么不是模式。但是,模式通常在被普遍接受之前具有较长的生命周期。开发社区开始参与PLOP(节目模式语言)和年度会议等活动:2008 Conference, 专注于模式作者和爱好者,讨论模式和新模式开发的主题。

答案 8 :(得分:3)

没有明确的清单 - 因为有一个人很可能需要一些权力来声明一个模式是一个模式还是一个......其他东西。

有些模式仅在语言的子集中才有意义 - 规范GOF book专注于Java(或者是C ++?办公室桌子上的书)和所描述的一些模式不是很相关例如,Ruby或VB6。反之亦然。

答案 9 :(得分:1)

我想说,“四人帮”一书中的联盟和福勒的企业架构模式将为您提供99%的您需要了解的内容。

答案 10 :(得分:0)

有一本规范书:Gamma,Helm,Johnson,Vlissides:“设计模式 - 可重复使用的面向对象软件的元素”,它开始了这一切。它包含23种模式。

答案 11 :(得分:0)

没有明确的清单。如初。

如果你看到一些问题的解决方案 - 对你来说 - 有一个可以明确表达的模式,你就会发现一种设计模式。你可以随时继续这样做。

每一个聪明的,新的解决方案都可能是类似解决方案的起源,它具有共同的模式。模式是用来总结和捕获问题的一个很酷的解决方案的东西。

人类的大脑几乎可以找到任何的模式。这是我们在不考虑它的情况下做的事情。