2008年10月10日

什么是设计模式

设计模式的定义方式各不相同,如果只是大致描述一下的话,我们可以说,设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。

但是我相信,肯定有很多首次踏入这个领域,或是初次听到该名词的朋友会有和我当初同样的困惑,那就是 — 到底什么是设计模式?虽然介绍设计模式的书籍和网页是层出不穷,然而却很少有让人一看就能理解的。于是我就有了些想法,希望能在这里贡献自己微薄的力量,将我所理解到的设计模式通过简单的类比方法告诉大家。

其实,我们只需要剖析“设计模式”这四个字,就能明白它指的是什么了。根据所学的语文知识我们知道,它是一个名词短语,偏重于“模式”二字,因此经过添油加醋后可以理解成是“良好设计所应遵循的模式”。也就是说,如果希望自己的软件能够设计得更好,那么我们就应当使用某些模式。

可是这里的“模式”又是什么意思呢?我们可以借助仿生学来理解模式二字。简言之,仿生学就是模仿生物的科学,也就是对某些生物的一些非常优秀的特性进行相应的模仿,并应用到人类技术的一门科学。比如说:潜水员的脚蹼就是模仿青蛙的脚蹼而来的。因为脚蹼增大了划水时与水的接触面积,因此能够使得潜水员的游泳速度加快。

如果不考虑经验来源和动机的差别,模式的道理与其类似。由于人们在生活中以及长期编码过程中,见识过很多的事物、遇到过各种复杂的情况,并累积了许许多多有用的经验。于是基于生活中某些事物的特点以及软件开发中所得到的宝贵经验,人们总结出了一些能够提高代码质量和软件产品品质的方法,这样的方法就叫做模式。典型的设计模式的例子有:抽象工厂、仓库模式、备忘录模式等等。这些模式也都是根据相应事物的特性和优点来命名的。

好了,其他有关于设计模式的官方说法和完备的定义我就省去就不说了,希望以上文字对大家有所帮助。

没有评论: