1.2 设计模式有什么

1.2.1 设计模式的组成

在描述单个设计模式的时候,设计模式通常由以下部分组成。

■ 模式名称:就是为每个设计模式取的名字,好记忆,也好交流。

■ 环境和问题:描述在什么场景下,出现什么样的特定的问题。

■ 解决方案:描述如何解决这个问题。

■ 效果:描述模式应用的效果,以及可能带来的问题,或者使用中需要权衡的问题。

在Java领域,对于设计模式的组成还有另外一种分法,就是按照设计模式所在的技术领域来划分,大致分为以下几类。

■ Java设计模式:通常指GoF的《设计模式——可复用面向对象软件的基础》一书中提到的设计模式。

■ JavaEE设计模式:通常指SUN《J2EE核心设计模式》一书中提到的设计模式。

■ 其他领域的,包括但不限于:EJB设计模式、实时系统设计模式、多线程设计模式、架构模式等。

1.2.2 设计模式的分类

为了缩小范围,我们仅讨论Java设计模式,也就是GoF著作中提到的23个设计模式。对于这23个设计模式,GoF把它们分为三类。

■ 创建型模式:抽象了对象实例化的过程,用来帮助创建对象的实例。

■ 结构型模式:描述如何组合类和对象以获得更大的结构。

■ 行为型模式:描述算法和对象间职责的分配。

当然也有按其他方式进行分类的,这里就不再讨论了。