zoukankan      html  css  js  c++  java
  • 模式的应用

    我越来越感觉到设计模式的应用是一种自然过程,模式应用的就好像是呼吸一样,你可能甚至会忽略到它的存在,但是却用整个生命的时间持续着对它的依赖。

     

    与强调模式的自然应用相比,我个人是非常反对刻意的去应用模式的。请注意,在设计时,设计本身和设计对模式的使用之间会有一个权衡点,当天平向任何一方倾斜的时候都说明你的设计已经出现了问题。如果在你设计的时候并没有考虑到模式应用的存在,那么你就很可能会犯那些先行者们早已经验证过是由于不良设计而造成的错误,毕竟设计模式就是一类设计范式的集合,它会使你站在巨人的肩膀上进行设计,可以让你少走很多弯路。而如果在设计时过程直接希望套用模式也不是一件好事(注1),设计应该是以设计本身为主导,而模式则应作为一种驱动力量而工作,如果我们过份依重模式在设计当中的应用,很可能就将设计的过程转变成以模式为主导的过程。这种过程所产生的结果是牵强的设计,虽然这样的设计最终也会完成,并在某些点上满足项目的需求,但它是以模式为出发点考虑问题的,而并不是以设计或者更广阔的全局目标作为出发点考虑问题,所以这样做往往不会带来令人满意的整体效果。

     

    那么我们怎么样才能做到“自然”的应用模式的过程呢。金大侠笑傲江湖当中风清扬交令胡冲学剑的那一段我感觉甚是精彩,风清扬告诉令胡冲将独孤九剑的剑谱记下,然后练熟,最后忘掉。也正是这个忘掉,最终成就了令胡冲,使它能达到无剑胜有剑的境界。模式的学习和练习独孤九剑的过程有着某些相似之处,记下和练习模式只不过是学得皮毛罢了,而如果想真正挥洒自如,则必须在实战中当中忘掉模式所带给你的束缚,将模式的招数在当前环境下以最自然最合理的方式应用出来,这样才会造成最大的杀伤力。其实如果当你真正的达到了这种境界,你应该会感觉到,设计模式已经完全融入了你的内心,而你所使用到的模式叫什么名字、它有什么样的应用环境、它如何来应用等等这些将不再重要,你甚至会统统忘记它们,这真的无所谓,因为你所忽略的只是一些助记符,而你所得到的是才是模式中最宝贵的部分。To be continue.

    1:难道初学者不是通过这种在设计的过程当中套用模式的方式一步一步走向成熟的,我对此问题感觉到十分的困惑。

  • 相关阅读:
    GitHub教程学习笔记1本地Git管理
    GitHub教程学习笔记2远程仓库和本地仓库
    图像分割方法综述
    println输出乱码
    ngshow,ngif区别
    isFile() exists() isDirectory()的区别
    File类中的list和listFiles方法
    mkdir与mkdirs的区别
    新建play项目eclipsify后导入eclipse后无法debug调试
    大龄屌丝自学笔记Java零基础到菜鸟021
  • 原文地址:https://www.cnblogs.com/light/p/27848.html
Copyright © 2011-2022 走看看