模式的诞生:
模式起源于建筑业.是从大量的建筑和规划实践中精心提炼出来的经验.
模式三要素:1.Context(模式可适用的前提条件);
2.Theme或Problem(在特定条件下要解决的目标问题);
3.Solution(对目标问题求解过程中各种物理关系的记述).
模式之父:Christopher Alexander博士,亚历山大是当代1举世闻名的建筑大师.
Alexander给出的关于模式的经典定义:
每个模式都描述了一个在我们的环境中不断出现的问题,然后描述了该问题的解决方案的核心,
通过这种方式,人们可以无数次地重用那些已有的解决方案,无须再重复相同的工作.
模式:在特定环境下,人们解决某类重复出现问题的一套成功或者有效的解决方案.
模式的作用:
模式是一种参照性指导方略.在一个良好的指导下,有助于按照既定思路快速做出一个
优良的设计方案,得到解决问题的最佳办法,高效完成任务,达到事半功倍的效果.
当一个领域成熟时会出现很多模式,不同的领域有相应的模式,例如建筑领域有建筑模式,
软件设计领域有软件模式.
最早将建筑模式的思想引入软件工程方法学的是"四人组",他们在1994年发表了23种
在软件开发中使用频率较高的设计模式,旨在用模式来统一沟通面向对象方法在分析、
设计和实现的鸿沟.
1994年,由Erich Gamma、Richard Helm、Ralph Johnson和John Vlissides四人合著
出版了一本名为《Design Patterns-Elements of Reusable Object-Oriented Software》
(中文译名:设计模式-可复用的面向对象软件元素)的书。该书首次提到了软件开发
中设计模式的概念。
四位作者合称GOF(Gang of Four)。
四人组所提出的设计模式主要是基于七个面向对象设计原则.
设计模式在软件开发中的应用:
1.Sun的Java SE/Java EE平台和Microsoft的.NET平台设计中应用了大量的设计模式;
2.轻量级框架Struts、Spring、Hibernate、Junit、Nhibernate、NUnit大量使用模式;
3.C++、Java、C#、Objective-C、VB.net、Smalltalk、PHP、Delphi、JavaScript、
Ruby等支持设计模式;
...