1

我研究了 GoF 设计模式一书,并列出了 Martin Fowler 的 PoEAA 书。(我也有 Judith Bishop 的书,我个人不喜欢。)但是还有更多的模式,比如委托模式。它的起源是什么?这些书中没有提到其他模式吗?是否有其他关于此主题的“必读”书籍或在线资源?

4

4 回答 4

5

它的起源是什么?

设计模式的起源

不久前我做了一些研究,并对设计模式的起源做了一些笔记。以下是我当时收集的个人笔记的复制/粘贴。

最初
的影响 软件工程中设计模式的影响来自一个叫Christopher Alexander的人,他是一名建筑建筑师(Houses not Software)。他以他的设计理论而闻名,并于 1977 年出版了一本书,A Pattern Language。在这本书中,Christopher Alexander 讨论了模式的概念,因为它们可以被重用并应用于复杂和重复的工程任务。

转向软件开发
Christopher Alexander 的工作影响了Kent BeckWard Cunningham,他们将模式分类的概念应用于软件开发,并在 1987 年的 OOPSLA 会议上介绍了他们的工作。

四人组
设计模式和软件开发最著名的来源可能是这本书:Design Patterns: Elements of Reusable Object-Oriented Software。这本书的作者以四人组而闻名,他们是埃里希·伽玛、理查德·赫尔姆、拉尔夫·约翰逊和约翰·弗里赛德斯。

这本书是第一本即将出版的设计模式书籍,并在 1994 年的 OOPSLA 会议上首次公开。

这些书中没有提到其他模式吗?

我还没有读过你提到的所有书籍,但是当我参加关于设计模式的 PluralSight 课程时,它们已经涵盖了很多内容,请参见下面的列表。

  • 适配器模式
  • 桥接模式
  • 建造者模式
  • 责任链
  • 命令模式
  • 复合图案
  • 装饰器设计模式
  • 事件聚合器
  • 立面图案
  • 工厂模式
  • 蝇量级
  • 解释器模式
  • 迭代器模式
  • 延迟加载模式
  • 中介者模式
  • 纪念
  • 模型视图展示器 (MVP) 模式
  • 模型视图视图模型 (MVVM) 模式
  • 空对象模式
  • 观察者模式
  • 原型模式
  • 代理模式
  • 存储库
  • 辛格尔顿
  • 服务定位器模式
  • 状态模式
  • 策略模式
  • 模板法
  • 工作单元
  • 访客模式
于 2012-04-28T23:22:05.417 回答
4

这些书中没有提到其他模式吗?

确实。GoF 模式是这一切的祖父,而且相当普遍,但您也可以拥有特定领域的模式。正如您提到的,就像 Fowler 的 PoEAA。或者嵌入式系统的设计模式。但也比这更具体,比如福勒关于分析模式的书,其中有金融和医疗保健相关的模式。或航空电子系统的模式,如Hillside Patterns Catalog中的链接。

它的起源是什么?

如果您的意思是委托模式的起源是什么,我不知道,但有人在这里提出了类似的问题。

是否有其他关于此主题的“必读”书籍或在线资源?

我相信,名字很有趣的“ PLoP ”会议(程序设计的模式语言)是第一个展示一些模式的地方。

还有一本 PLoP 期刊:Transactions on Pattern Languages of Programming

我发现Design Patterns Explained在解释 Gang of Four 模式背后的一些原始想法方面非常有用。这是一个解释而不是参考。

除了其他地方提到的 PluralSight 目录之外,NetObjectives 还拥有一些关于模式(和一般原则)的大量资源,尤其是他们的网络研讨会系列。

于 2012-04-29T01:49:56.130 回答
1

Design Patterns: Elements of Reusable Object-Oriented SoftwareThe Design of Everyday Things是非常好的书籍。我特别推荐前者,因为它读起来很直观。

于 2012-04-28T23:22:26.857 回答
0

我认为“必读”是非常主观的,但我真的从Head First Design Patterns中学到了很多关于设计模式的话题。也就是说,“头脑优先”的书有一种典型的写作风格(我想我听说有人把它描述为愚蠢的......)可能并不适合所有人,对我来说它很有效。我特别发现它比前面提到的(尽管确实非常好)“四人帮”书更轻巧,更容易阅读。

于 2012-04-28T23:19:03.923 回答