1.2 设计模式有什么
1.2.1 设计模式的组成
在描述单个设计模式的时候,设计模式通常由以下部分组成。
■ 模式名称:就是为每个设计模式取的名字,好记忆,也好交流。
■ 环境和问题:描述在什么场景下,出现什么样的特定的问题。
■ 解决方案:描述如何解决这个问题。
■ 效果:描述模式应用的效果,以及可能带来的问题,或者使用中需要权衡的问题。
在Java领域,对于设计模式的组成还有另外一种分法,就是按照设计模式所在的技术领域来划分,大致分为以下几类。
■ Java设计模式:通常指GoF的《设计模式——可复用面向对象软件的基础》一书中提到的设计模式。
■ JavaEE设计模式:通常指SUN《J2EE核心设计模式》一书中提到的设计模式。
■ 其他领域的,包括但不限于:EJB设计模式、实时系统设计模式、多线程设计模式、架构模式等。
1.2.2 设计模式的分类
为了缩小范围,我们仅讨论Java设计模式,也就是GoF著作中提到的23个设计模式。对于这23个设计模式,GoF把它们分为三类。
■ 创建型模式:抽象了对象实例化的过程,用来帮助创建对象的实例。
■ 结构型模式:描述如何组合类和对象以获得更大的结构。
■ 行为型模式:描述算法和对象间职责的分配。