WEB开发网
开发学院WEB开发Jsp 什么是设计模式 阅读

什么是设计模式

 2008-01-05 20:06:04 来源:WEB开发网   
核心提示:什么是模式,这是一个看上去简单,什么是设计模式,但是又非常不简单的问题,我见过很多人,以及Java语言本身使用了什么设计模式,可以看一看我的新书《Java与模式》(电子工业出版社出版),学习模式理论已经很长时间了,但是并不真正理解这一点
什么是模式,这是一个看上去简单,但是又非常不简单的问题。我见过很多人,学习模式理论已经很长时间了,但是并不真正理解这一点。

  模式理论的基本思想其实起源于中国,是中国文化的固有思想。你,我,我们中每一个自幼受到中国思想熏陶的人,都自然具有这一基本思想。模式的思想存在于中国文化的各个角落,包括哲学、法律,医学,兵法,体育,文学,直到我们行为处事的方式。

模式的思想,长期以来不存在于西方思考方式中,至今也不是西方文化的主流思想。因此学习模式,切忌以西方式的思路学习。不然的话,缘木求鱼,事倍功半。

简单地讲,所谓模式,就是得到很好研究的范例。设计模式,就是设计范例。在孙子兵法中,充斥着各种模式。孙子说,“至于死地而后生”,就是战争模式。三十六计,条条都是模式,比如“走为上”,“空城计”也都是战争模式。

这些模式中的每一个都具有典型意义,具有学习价值。通过研究这些模式,学习者可以相互交流,可以在自己的实践中举一反三,推陈出新,加以应用。

在我们参加高考的时候,老师给我们很多的典型题目,作为练习使用。这些题目一般来说不会在高考中原封不动地出现,但是这些题目会有一些内容启发我们的思考,可以让我们举一反三,从而为考试做好预备。

模式不是框架(Framework),也不是过程。模式也不是简单的“问题的解决方案”,因为模式必须是典型问题的解决方案,是可以让学习者举一反三的,有研究价值、有交流价值,有自己的名字的例子。

模式不能套用。不要以为在任何一个系统中都要使用某些设计模式。系统的设计也不是含有设计模式就好,更不是含有越多的设计模式就越好。

在《三国演义》中,马恕就套用了“至于死地而后生”的战争模式,最后倒了大霉。在高考中,你假如把老师交给你的典型题目答案倒背如流,在一个个放到考试卷子上去,放得越多,恐怕你就离考上大学越远。

比如你喜欢三十六计,假如你在执行某项军事任务的时候,千方百计地将尽可能多的三十六计用到里面,每次都来一个“走为上”,那么你的朋友和敌人都会觉得某名奇妙。假如你非三十六计中的计谋不用,或者认为非三十六计中的策略不算好策略,那么别人只能认为你不懂三十六计的精髓。

中国传统医学也是一样,有时看上去症状相似的病,却要使用不同的处方,即所谓辨证用药。假如每次给病人看病,都要捧出某本医案,将尽可能多的闻名医案用到你的病人身上,恐怕过不了多久就麻烦大了。

中国古代的法律,就是案例法;也就是需要法官在研习案例的基础之上,举一反三,适当发挥。开个玩笑,假如你喜欢上“轧美案”,逢美必轧,恐怕需要及早做好该行的预备。

关于模式的理论的起源、历史,以及模式理论与中国文化的渊源、哲学思想,设计模式背后的OO设计原则,二十几个设计模式的具体讲解,他们在java语言中如何实现,如何在自己的系统设计中举一反三、推陈出新,以及Java语言本身使用了什么设计模式,可以看一看我的新书《Java与模式》(电子工业出版社出版)。

进入讨论组讨论。

Tags:什么 设计模式

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接