我是架构师–设计模式-小故事

先说个故事吧。

当《独立宣言》还在起草时,本杰明*富兰克林坐在托马斯*杰弗逊的身边,把杰佛逊关于“我们认为这些真理是神圣的,毋庸置疑” 的措辞修改为现在非常著名的句子“我们认为这些真理是不言而喻的”。根据传记组评价 Walter Isaacson 的说法,杰佛逊对富兰克林的改动暴怒不已。富兰克林意识到朋友的情绪很激动,所以给他讲述了另一位朋友约翰*汤普森(John Thompson)的故事。

御寒*汤普森刚刚开始从事制帽业,想为自己的公司设计一个标记。他设计出如下图所示:

John Thompson,帽商,制作和销售帽子,现金支付

在启用新标记前,约翰决定给几个朋友看看,听听他们的意见。第一个朋友觉得“帽商”这个词有些重复,没有必要,虚拟主机,因为后面的话“制作….帽子”,已经说明了约翰是一个帽商。于是“帽商”这个词被删除了。第二个朋友认为,“制作”一词可以不要,因为顾客不会关心到底是谁制作了帽子。于是“制作”一词也被删去。第三个朋友说,他认为“现金支付”毫无用处,因为不会有顾客赊账买帽子,一般人们都用现金买。所以这些词也被删去。

现在标记变成了:“John Thompson 销售帽子”

“销售帽子!”他的另一个朋友说,“哎呀,没人认为你会给他发帽子的。这个词有什么用处呢?” 于是“销售”被删去了。这是“帽子”这个词显然也没什么用处了,因为标记里已经有了帽子的图形。所以最终被简化成:

John Thompson

在Simple and Direct 一书中,香港虚拟主机, Jacques Barzun 阐释到,所有优秀的著述,都是不断修改而成的。

到现在,你可能觉得跟设计模式有点关系,又没有太明显的关系,呵呵。我来提个问题:你为什么要用设计模式?

或者我换个问法:你怎么理解设计模式?你何时用,怎么用设计设计模式?在这个故事里,其实更多讲的是重构,某种意义上讲,他成为了应用设计模式的一种驱动,也就是说,我们不容易一次把事情做好,而在重构的过程中,利用 设计模式 来让你的系统更加的 好!

设计模式一定要在重构中使用吗?当然不是,只是我们软件环境下,大多数情况,他们伴随而行。

问:设计模式到底是什么?

1. 设计模式更像是一种小型的架构,他遵循某些原则,让我们的代码更加的优雅。

2. 他就像一个术语,如我说策略模式,你就知道,我为做了哪些事情。如果不懂策略模式,我就要解释,我把一些可变行为进行了经行剥离,你可以输入你自己定义类来改变我的行为,而且这样可能还不够….

问:何时用设计模式?

1. 任何合理的地方

问:怎么用设计模式?

理解设计模式,在你的重构过程中让你的系统更加符合你们的期望,如解耦,重用等。当然,熟练时可以考虑在设计系统时就提前加入设计模式。甚至,不要拘泥于设计模式,你可以根据实际情况稍微改动,趋向设计模式。

现在设计模式有大量的参考文章,甚至具体事例,为了不重复发明轮子,我也试图找一些可以转载的文章,网站空间,来让大家更加的理解设计模式。同样,我更推荐大家多读书, 本文章将主要参考以下书籍:《HeadFirst设计模式》,《重构与模式》,《短码之美》,《Java与模式》。

–同时建议:入门者看《HeadFirst》系列, 提升可以看看《短码之美》,《重构与模式》等。

本文出自 “书生” 博客,请务必保留此出处

纵然伤心,也不要愁眉不展,因为你不知是谁会爱上你的笑容

我是架构师–设计模式-小故事

相关文章:

你感兴趣的文章:

标签云: