设计模式简介介绍 首页设计模式设计模式简介

在软件工程中,设计模式(design pattern)是对软件设计中普遍存在(反复出现)的各种问题,所提出的解决方案。这个术语是由埃里希·伽玛(Erich Gamma)等人在1990年代从建筑设计领域引入到计算机科学的。

设计模式并不直接用来完成代码的编写,而是描述在各种不同情况下,要怎么解决问题的一种方案。面向对象设计模式通常以类别或对象来描述其中的关系和相互作用,但不涉及用来完成应用程序的特定类别或对象。设计模式能使不稳定依赖于相对稳定、具体依赖于相对抽象,避免会引起麻烦的紧耦合,以增强软件设计面对并适应变化的能力。

并非所有的软件模式都是设计模式,设计模式特指软件“设计”层次上的问题。还有其他非设计模式的模式,如架构模式。同时,算法不能算是一种设计模式,因为算法主要是用来解决计算上的问题,而非设计上的问题。

随着软件开发社区对设计模式的兴趣日益增长,已经出版了一些相关的专著,定期召开相应的研讨会,而且沃德·坎宁安(Ward Cunningham)为此发明了WikiWiki用来交流设计模式的经验。

四人帮(GOF)

1994年,四位作者Erich Gamma,Richard Helm,Ralph Johnson和John Vlissides出版了一本书,标题为设计模式-可重用的面向对象软件的元素,该书提出了软件开发中的设计模式的概念。

这些作者统称为四人帮(GOF)。这些作者认为,设计模式主要基于以下面向对象设计的原理。

  • 编程到接口而不是实现

  • 继承时的主要对象组成

设计模式类型

根据设计模式参考书设计模式-可重用的面向对象软件的元素,共有23种设计模式,可分为三类:创造型,结构型和行为型。我们还将讨论设计模式的另一类:J2EE设计模式。

S.N.Pattern & Description
1 Creational Patterns
这些设计模式提供了一种在隐藏创建逻辑的同时创建对象的方法,而不是直接使用new运算符实例化对象。这为程序提供了更大的灵活性,可以决定需要为给定用例创建哪些对象。
2 Structural Patterns
这些设计模式涉及类和对象组成。继承的概念用于组成接口并定义组成对象以获得新功能的方式。
3 Behavioral Patterns
这些设计模式专门涉及对象之间的通信。
4 J2EE Patterns
这些设计模式专门与表示层有关。这些模式由Sun Java Center标识。
点我分享笔记