设计模式的类别

时间:2008-09-24 06:11:26

标签: design-patterns poeaa

经典的“设计模式:可重复使用的面向对象软件的元素”实际上向我们介绍了设计模式的概念。

然而,这些天我发现了一本书,如Martin Fowler的“企业应用程序架构模式”(POEA),在我的日常工作中更有用。

在与其他开发人员的讨论中,许多人都认为,像.NET这样的框架正在慢慢开始提供GOF书中的许多模式,那么为什么要重新发明轮子呢?

似乎很多开发人员认为GOF书是唯一值得参考设计模式的书。所以他们的逻辑是因为框架(.NET等)为我们提供了许多GOF模式,模式已经过去了,并且不再那么重要了。

令人惊讶的是(至少对我来说)当我提到POEA中描述的模式时,我经常会遇到空白的目光。

POEA证明模式不仅仅是Interators,Singletons,Commands等。我还会说GOF中的模式实际上只是模式的一个独特“类别”,适用于不同(非重叠)的设计级别,而不是那些在POEA。

那么,您的开发中应用了哪些其他“类别”模式?这些模式适用于什么级别的设计?他们通常在开发过程中的哪个阶段使用?是否有关于这些模式的书籍或参考文献?

3 个答案:

答案 0 :(得分:7)

Ward's wiki上的

CategoryPatterns包含一个分类的模式列表。

前三个是GoF模式

  • 创建型
  • 结构
  • 行为

然后存在问题特定问题

  • 安全
  • 并发
  • 实时

福勒的模式是企业应用模式。还有Enterprise Integration Patterns。 UI模式也存在..依此类推......

答案 1 :(得分:3)

我只是添加一个答案,因为我对此问题的回答有所不同。根据POSA(面向模式的软件架构系列丛书),有三个层次的模式:

  • 架构模式(例如,层,MVC,P2P
  • 设计模式(例如GoF模式
  • 成语(例如语言特定模式,如Pimpl,C ++中的RAII

答案 2 :(得分:0)

GoF模式也严格适用于代码。福勒的模式不仅适用于代码,还适用于数据和系统组件的排列和互连方式。

此外,如果已经使用编程语言烘焙了一些模式,则不需要这些模式。在某些语言中,它们只是成语。实际上,人们认为设计模式是编程语言不足的标志。