1.4 模式简史
现在,模式被广泛地运用到软件设计和其他各个领域中,然而,模式(Pattern)这一词却最先在建筑学里被建筑师Christopher Alexander引入。在20世纪70年代,Christopher Alexander等人创作了一系列书籍来描述建筑学上的模式,其中一本名为“A Pattern Language:Towns, Buildings, Construction”[1] 的书中讲述了建筑领域的253个模式,并为模式的作出了定义,指出这些模式并不会随着时间消逝而褪色。
到1987年,Kent Beck 和Ward Cunningham开始尝试把模式设计引入到编程世界,经过几年坚持不懈的努力和尝试,到了1994年,由Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides四人编写的书籍“Design Patterns:Elements of Reusable ObjectOriented Software”面世,这本书在后来设计模式学习和研究中影响非常广泛,是一本经典的设计模式参考书籍。在此书中,他们总结了多年来软件开发人员的实践经验和研究成果,收编了23个最常用的设计模式。
时至今日,这23个设计模式仍然是最基本,最经典的模式,而这四个人往往被称为“Gang of Four(四人帮,其实是一种开玩笑的戏称)”,简称为“GoF”。
由于20世纪80年代,面向对象技术蓬勃发展,GoF提出的这些模式都来自于面向对象开发设计的经验,即这些模式都是有关面向对象开发设计的。由于面向对象的强大生命力,随着越来越多的人加入面向对象的大军,面向对象的设计模式也得到极大地推广和发展,涌现出了很多出色的新模式。
[1] 参见Christopher Alexander等编著的“A Pattern Language:Towns, Buildings, Construction”一书,Oxford University Press。这本书籍是卷二,卷一是大家非常熟悉的书籍“The Timeless Way of Building”。