设计模式一词跟随着95年发行的《Design Pattern , Elements of Reusable Object-Oriented Software》一书流行了起来;一本《Java与模式》更是让更为广泛的中国开发者理解和爱上了设计模式!
在板桥里人的一片关于设计模式的文章中曾说过:“就Java语言体系来说,GOF的设计模式是Java基础知识和J2EE框架知识之间一座隐性的"桥"。”给予设计模式一大肯定。
那设计模式到底是什么呢?
John Vlissides曾说过:“在设计模式中,仅有的、最重要的就是不断的反省”。也许不太好理解,他说的意思应该就是设计模式是对已有的经验教训总结的结晶。因此将其比作数学中的公式、物理中的定理应该不为过。
天下没有万能的公式和定理,当然也就没有万能的设计模式!怎么才能很好的运用模式呢?
当然第一位的是一定要遵循每个模式所适用的条件,对现有问题进行正确恰当的评估和分析。不然张冠李戴等于不对症下药,吃了反而挂得更快:)
要做到正确的分析和评估,是谈何容易啊!!这不是熟读两三遍设计模式教材所能达到的——当然,这对接近目标起着很好的推动作用。这最主要的就是需要经验啊!可是鄙人刚刚参与社会主义建设还不到半年,家底薄的难以见人,根本无权在这里大放厥词:介绍大家一两本秘籍,大家一定功力倍增!
还有一点很重要,就是不要死套模式!想想自己运用公式作数学或者物理题的时候,靠死套公式是很难解决一些巧妙的大题的。可以说模式的精华在于扩展和复用,而做到这点首先要知道每个模式的思想。就像武侠中的高手一样,功夫了得到无招无式;设计模式的最高境界大概也是如此吧。
所以大家还是多写代码、少睡懒觉、多动动笔、少聊聊天,一起共勉吧。
《Design Pattern , Elements of Reusable Object-Oriented Software》一书里面提到了23种模式,也许你要摇头:23种模式,太多了,根本就是记不住的!再看看《java与模式》这本多功能用具(可以拿来当板砖),又是晕倒一片,惊呼:设计模式爱我咋就这么难呢!!
其实小弟也曾是上面的一份子,实在惭愧!可是当我由于一次培训的原因,不得不仔细的研读设计模式的时候,我发现原来的担忧是多余的!23种模式其实“貌似神离”的有许多,为了更好的掌握我们完全可以把23种浓缩记忆(貌似神离在这里我所指的意思是:他们在实现上的结构基本相同,而实现的目的却有不同的侧重)。所以,我劝现在还在犹豫的同仁们,翻开你们的书,开始学习吧!
按照书中的划分,设计模式分为三个类型:创建型、结构型和行为设计模式。
-
创建型设计模式描述了实例化对象的相关技术,解决了与创建对象有关的问题。
-
结构型设计模式描述了在软件系统中组织类和对象的常用方法,避免了一个类被赋予过多职责而破坏类的封装性和信息的隐藏,和类之间功能重叠的问题。
-
行为设计模式负责分配对象的职责,为对象间协作建模提供了有效的策略。
说起这几篇深入浅出开头的文章,其实是我某天心血来潮涂抹上来的。不料竟然写了有三四篇的样子,像我这种生性懒惰,常常只有两三分钟的热度的人,能不能坚持写下去完全要靠网友们热情的支持。我会尽量使我的文章浅显易懂,便于学习。另外应一位仁兄建议,我会尝试着写出我对各种设计模式异同的总结。
记住只要用心学习,设计模式会爱上你的!