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

       先说个故事吧。设计模式

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

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

 

u=2178851506,584178965&fm=52&gp=0

          John Thompson,帽商,制做和销售帽子,现金支付 设计

        在启用新标记前,约翰决定给几个朋友看看,听听他们的意见。第一个朋友以为“帽商”这个词有些重复,没有必要,由于后面的话“制做....帽子”,已经说明了约翰是一个帽商。因而“帽商”这个词被删除了。第二个朋友认为,“制做”一词能够不要,由于顾客不会关心究竟是谁制做了帽子。因而“制做”一词也被删去。第三个朋友说,他认为“现金支付”毫无用处,由于不会有顾客赊帐买帽子,通常人们都用现金买。因此这些词也被删去。blog

     如今标记变成了:“John Thompson 销售帽子”get

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

    u=2178851506,584178965&fm=52&gp=0

John Thompson入门

       在Simple and Direct 一书中, Jacques Barzun 阐释到,全部优秀的著述,都是不断修改而成的。class

        到如今,你可能以为跟设计模式有点关系,又没有太明显的关系,呵呵。我来提个问题:你为何要用设计模式?重构

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

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

     问:设计模式究竟是什么?

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

2. 他就像一个术语,如我说策略模式,你就知道,我为作了哪些事情。若是不懂策略模式,我就要解释,我把一些可变行为进行了经行剥离,你能够输入你本身定义类来改变个人行为,并且这样可能还不够....

   问:什么时候用设计模式?

1. 任何合理的地方

   问:怎么用设计模式?

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

    如今设计模式有大量的参考文章,甚至具体事例,为了避免重复发明轮子,我也试图找一些能够转载的文章,来让你们更加的理解设计模式。一样,我更推荐你们多读书, 本文章将主要参考如下书籍:《HeadFirst设计模式》,《重构与模式》,《短码之美》,《Java与模式》。

   --同时建议:入门者看《HeadFirst》系列, 提高能够看看《短码之美》,《重构与模式》等。

相关文章
相关标签/搜索