什么是设计模式
- 一套被反复使用、多数人知晓的、经过分类编目的、代码 设计经验 的总结;
- 使用设计模式是为了 可重用 代码、让代码 更容易 被他人理解、保证代码 可靠性;
- 设计模式使代码编制 真正工程化;
- 设计模式使软件工程的 基石脉络, 如同大厦的结构一样;
- 并不直接用来完成代码的编写,而是 描述 在各种不同情况下,要怎么解决问题的一种方案;
- 能使不稳定依赖于相对稳定、具体依赖于相对抽象,避免引起麻烦的紧耦合,以增强软件设计面对并适应变化的能力。
设计模式的由来
哥特式建筑
中式建筑
设计模式的由来
建筑师 克里斯托佛·亚历山大 在1977-1979年编制了一本汇集设计模式的书
肯特· 贝克 和 沃德·坎宁安 在 1987年,利用克里斯托佛·亚历山大 在建筑设计领域里的思想开发了 设计模式 并把此思想 应用在Smalltalk 中的图形用户接口的生成中
1988年,Erich Gamma 在他的苏黎世大学博士毕业论文中开始尝试把这种思想 改写为适用于软件开发
与此同时 James Coplien 在 1989年至1991 年 也在利用相同的思想致力于C++ 的 开发,而后与1991 年 发表了他的著作 Advanced C++ Idioms。
1995年,Richard Helm,Ralph Johnson,John Vlissides(Gof)合作出版了 Design Patterns -- Elements of Reusable Object-Oriented Software 一书,在此书中收录了23 个设计模式。