一.简介
设计模式(design pattern)是对面向对象设计中反复出现的问题的解决方案。这个术语是在1990年代由艾瑞克·伽马(Erich Gamma)等人从建筑设计领域引入到计算机科学中来的。
设计模式是用来提高代码可重用性、可维护性、可读性、稳健性以及安全性的解决方案。(设计模式更多的是一种设计思想、不同的人有不同的理解实现,并非固定不变)
设计模式的本质是面向对象设计原则的实际运用,是对类的封装、继承和多态以及类的关联关系和组合关系的充分理解。
二.背景
设计模式这个术语最初用于建筑领域的设计,1977 年,美国著名建筑大师、加利福尼亚大学伯克利分校环境结构中心主任克里斯托夫·亚历山大(Christopher Alexander)在他的著作《建筑模式语言:城镇、建筑、构造(A Pattern Language: Towns Building Construction)中描述了一些常见的建筑设计问题,并提出了 253 种关于对城镇、邻里、住宅、花园和房间等进行设计的基本模式。
1979 年他的另一部经典著作《建筑的永恒之道》(The Timeless Way of Building)进一步强化了设计模式的思想,为后来的建筑设计指明了方向。
1995 年,艾瑞克·伽马(ErichGamma)、理査德·海尔姆(Richard Helm)、拉尔夫·约翰森(Ralph Johnson)、约翰·威利斯迪斯(John Vlissides)等 4 位作者合作出