如果要问起近10年来在计算机软件工程领域所取得的重大成就,那么就不能不提到
设计模式(Design Pattern)了。 什么是模式呢?
1.1 基本概念(3月12日)
如果要问起近10年来在计算机软件工程领域所取得的重大成就,那么就不能不提到
设计模式(Design Pattern)了。 什么是模式呢?
什么是模式(Pattern)呢?并没有一个很严格的定义。一般说来,模式意指一种从
一个一再出现的问题背景中抽象出来的问题的固定的解决方案,而这个问题背景不应该
是绝对的,或者说是不固定的。很多时候看来不相关的问题,会有相同的问题背景,从
而需要应用相同的模式来解决。
说起来有些奇怪,模式的概念最开始的时候是出现在城市建筑领域的。Alexander的
一本关于建筑的书中明确的给出了模式的概念,用来解决在建筑中的一些问题。后来,
这个概念逐渐的被计算机科学所采纳,并在一本广为接受的经典书籍的推动下而流行起
来的。这本书就是: Design Patterns: Elements of Reusable Object-Oriented Sof
tware(设计模式:可复用面向对象软件元素),是由四位软件大师合写的(很多有时候
我们直接用GoF来意指这四位作者,Gof的意思是Gangs of Four,四人帮)。
设计模式指的是在软件的建模和设计的过程中运用到的模式。设计模式中很多种方
法其实很早就出现了,并且应用的也比较多。但是直到GoF的书出来之前,并没有一种统
一的认识。或者说,那时候并没有对模式形成一个概念。这些方法还仅仅是处在经验阶
段,并没有能够被系统的整理,形成一种理论。
每一个设计模式都系统的命名,解释和评价了面向对象系统中的一个重要的和重复
出现的设计。这样,我们只要搞清楚这些设计模式,就可以完全或者说很大程度上吸收
了那些蕴含在模式中的宝贵的经验,对面向对象的系统能够有更为完善的了解。更为重
要的是,这些模式都可以直接用来指导面向对象系统中至关重要的对象建模问题。如果
有相同的问题背景,那么很简单,直接套用这些模式就可以了。这可以省去你很多的工
作。
在设计模式一书中涉及到23个模式,被分类为创建型模式,结构型模式和行为模式
,分别从对象的创建,对象和对象间的结构组合以及对象交互这三个方面为面向对象系
统建模方法给予了解析和指导,几乎可以说的上包罗万有了。但是这本书另外的一个更
为重要的作用,应该是开创了在软件工程领域的模式化进程。而后,有很多模式陆续出
现,比如分析模式,体系结构模式等等。
到现在,很难想象在一个面向对象的软件开发过程中,没有利用任何的模式而从头
设计的。特别是向JDK这样庞大的类库,到处都可以看到设计模式的踪影,这篇文章,主
要就是探讨模式在Java类库中的应用。希望大家看了之后,能够对设计模式有一个概念
上的理解,并且能够对Java中的一些类和它们的交互有更深的体会。当然,进一步对设
计模式的学习,还是需要仔细的研究那本经典:GoF的设计模式。说是研究,绝对没有夸
张的,这本书并不是很好懂得,没有三五遍解决不了问题哦。