设计模式与统一建模语言(UML)入门
1. 设计模式的起源与历史
1.1 起源
20世纪70年代末,建筑师克里斯托弗·亚历山大(Christopher Alexander)在模式领域开展了已知的首次工作。为了识别和描述优质设计的整体性或活力,亚历山大及其同事研究了用于解决同一问题的不同结构,识别出高质量设计之间的相似性,并在以下两本书中使用“模式”一词来指代这些相似性:
- 《A Pattern Language: Towns, Buildings, Construction》(牛津大学出版社,1977年)
- 《The Timeless Way of Building》(牛津大学出版社,1979年)
亚历山大所识别和记录的模式纯粹是建筑领域的,涉及建筑物、花园和道路等结构。
1.2 从建筑到软件设计模式
1987年,受亚历山大著作的影响,肯特·贝克(Kent Beck)和沃德·坎宁安(Ward Cunningham)将建筑模式的思想应用于软件设计和开发。他们运用亚历山大的一些理念,为Smalltalk开发优雅的用户界面制定了一套模式,并在1987年的面向对象编程系统、语言和应用程序(OOP - SLA)会议上发表了题为“Using Pattern Languages for Object - Oriented Programming”的演讲。
1994年,埃里希·伽玛(Erich Gamma)、理查德·赫尔姆(Richard Helm)、拉尔夫·约翰逊(Ralph Johnson)和约翰·弗利赛德斯(John Vlissides)出版了《Design Patterns: Elements o