相关历史
Cristopher Alexander是模式之父,他的模式本质是以人为本的设计,其中是关于城镇、房屋和建筑物的设计。总的来说,这中方式对软件设计有很大的影响。1994年,“风尘四侠”(Eric Gamma、Richard Helm、Ralph Johnson和John Vlissides)出版了他们的书《Design Patterns: Elements of Reusable Object-Oriented Software》。这本书包括23个针对面向对象软件设计的模式,这些模式可分为三类:创造型、结构型和行为型。书中定义了软件行业的用语,以下是一些最著名的设计模式:
- Creational 创建型模式
- Factory method pattern 工厂模式
- Singleton pattern 单例模式
- Structural 结构型模式
- Adapter 适配器模式
- Bridge 桥接模式
- Composite 组合模式
- Decorator 装饰器模式
- Facade 外观模式
- Proxy 代理模式
- Behavioural 行为型模式
- Command 命令模式
- Iterator 迭代器模式
- Observer 观察者模式
- Strategy 策略模式
- Template method 模板模式
- Visitor 访问者模式
一年后,Frank Buschmann、Regine Meunier、Hans Rohnert、Peter Sommerlad和Michael Stal出版了他们非常有影响力的 《Pattern-Oriented Software-Architecture: A System of Patterns》一书,简写为POSA,这本书是系列五部曲的第一部。它在1995年出版,有三类模式:架构模式、设计模式和习惯用法。许多模式都是现在的通用术语:
- Architectural Patterns 架构模式
- Layers 层模式
- Pipes and Filters 管道和过滤器模式
- Broker 经纪人模式
- Model-View-Controller 模型-视图-控制器模式
- Design Patterns 设计模式
- Master-Slave 主从模式
- Publish-Subscriber 发布和订阅者模式
- Idioms 习惯用法
- Counted-Pointer 计数器模式
这三个类别有什么区别呢?体系结构模式的重点是整个软件系统,比定义相互作用的设计模式更加抽象。习惯用法是特定编程语言中体系结构或设计模式的实现,也是三者中抽象层次最低的。
POSA系列的第2卷至第5卷都有不同的关注点。他们处理并发”模式和网络对象”(第2卷),“资源管理模式”(第3卷),“分布式计算的模式语言”(第4卷),“模式和模式语言”(第5卷)。本书的同步模式和并行架构部分,深受系列的第2卷的影响。