关于设计模式的一点感想

来源:互联网 发布:淘宝产品突然被下架了 编辑:程序博客网 时间:2024/05/22 12:43
          过去对于软件当中复用的思想有概念,但却没有太深刻的体会,有时候在代码里面多处调用了同一个函数,就认为这个就是软件的复用了。甚至和别人一聊起“面向对象”来,也会说到“抽象”,“继承”,“封装”,“多态”,“设计模式”,“数据结构与算法”等等名词,但却真的没有一种内心的深刻体验,也很少想什么时候应该用“抽象”或“接口“,“多态”都说是面向对象中特别重要的东西,它到底重要在哪里?“设计模式”都应该是架构师考虑的和我们有什么关系?“数据结构与算法”都是玩过程化编程人玩的,对我们有何用?等等......
再表述直白一点就是自己对“复用“的思想过去仅仅停留在代码的复制粘贴、算法的复用、数据机构的复用阶段,但却从未真正理解了”面向对象“的复用,才是更高一层的复用。
为什么我对“复用“的问题现在如此关心呢,我想这个问题先从价值观方面来考虑是最有说服力的,说白了也就是一个在工地上搬砖的工人和一个工程设计师之间的区别......这也是从个人发展方面考虑,另一个从软件的可维护性上看,一个易于维护的系统不仅能给客户节约成本同时也给软件的开发商后期的维护减少很多不必要的麻烦,而软件的可维护性和软件的复用性却是有很大关系的。
总之,我想说的就是:无论做任何事情,都是有一定规律可循的,就像为官的有为官之道,从商的有从商之道,而我们既然选择了从事技术,我们就因该发现、遵从、继承、发展我们这个行业的道,这个道可以理解为规则, 而从事面向对象编程,直接把这些规则(理论)变为现实的指导性工具就是“设计模式“ 与 ”数据结构与算法“ 这都是前人给我们留下的宝贵经验和财富。
另外我还想说明一点,在开发过程中快速开发工具 的确给我们带来了模块化编程的方便、快捷、高效,但同时它也有可能限制了我们个人设计理念的充分发挥,说具体一点就是目前的代码结构单一,感觉平实,没有设计的立体感。我们的思维都被限制在一个模块一个模块开发的框框里面,这样就造成我们在开发一些较大的业务模块时,没能从全局、从更大的范围来抽象的定义问题的本质,范了设计上的大忌---使抽象依赖于具体的实现,说直白一些就是使“战略依赖于战术”,这显然是有很大的问题的,也就是我们忽略了业内一直强调的“建模”问题,同时没能统筹考虑、统一设计,更形不成一种真正或接近于业界标准的设计,使得我们整体的设计处于一种瓶颈之下,无法突破。
  最后还有一句也是自己很长时间才总结出的一句话:“做任何事情,第一步是不怕你做不到就怕你想不到,第二步是不怕你想不到就怕你做不到”. 
原创粉丝点击