2008-09-24 75 views
2

经典的“设计模式:可重用的面向对象软件的元素”实际上引入了我们大多数人的设计模式的想法。设计模式的分类

但是现在我发现了一本书,比如Martin Fowler的“企业应用架构模式”(POEA),在日常工作中更加有用。

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

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

当我提到POEA中描述的模式时,出乎意料的(至少对我来说),我经常遇到空洞的目光。 POEA证明模式不仅仅是Interator,Singletons,Commands等。我也会说GOF中的模式实际上只是一个不同的模式“范畴”,适用于不同的(不重叠的)层次的设计,比那些在POEA。

那么,您的开发中还有哪些其他“类别”的模式?这些模式适用于什么级别的设计?他们通常在开发过程的哪个阶段使用?有这些模式的书籍或参考吗? Ward's wiki上的

+0

福勒的企业模式的书,我的常见缩写s PEAA – jop 2008-09-24 06:13:26

回答

6

CategoryPatterns包含模式的分类列表。

前三个是GoF的模式

  • 创力
  • 结构
  • 行为

然后有问题的具体问题

  • 安全
  • 并发
  • 实时

福勒的模式是企业应用模式。也有Enterprise Integration Patterns。 UI模式也存在..等等...

0

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

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

2

我只是添加一个答案,因为我有这个问题的答案有些不同。据POSA(在面向模式的软件架构系列图书),有三个层次的模式:

  • 架构模式(如图层,MVC,P2P
  • 设计模式(如GOF模式
  • 成语(如特定语言模式,如平普尔,RAII在C++