浅析算法与设计模式的关系

      有人说十天学会编程, 也有人说十年学会编程。前者说的是十天学会语法, 后者说的是十年在程序设计思想上达到一个相当的高度。不过个人认为十天才学会一种语法,那这人也太逊了吧,还敢出书名曰:《十天学会XXX》。但是说十年学会编程,一点也不夸张!

 

      上面说的程序设计思想,我想应该包括两个方面:算法设计 和 设计模式。这里说两个方面,是因为大家平时都这么分,我个人觉得设计模式应该就隶属于算法。

      一说到算法,不太了解算法的就马上想到数据结构。记得一次面试的时候,面试官说:"算法就是数据结构嘛,,,", 我纠正说:"不一样,算法强调思想方法,数据结构强调数据的存储方式,后者是前者的基础。" 被指出了错误,面试官不高兴了,马上说:"就面到这里,回去等通知吧。" 汗,,,,,, 那么,算法是什么呢,引用书上的一句话:算法是程序的灵魂。
说得具体点的话,算法强调的是细节,设计模式强调的是整体的设计框架。打个比方就是,设计模式是宏观天体,算法是微观粒子。说到微观与宏观,可能大家都见过一副图:一条巨蟒咬住了自己的尾巴。这就是算法和设计模式的关系。
      有的人算法不太好,或者算法根本就不会,说:"我不学算法,我只学设计模式,也能成为编程牛人,,,", 这种说法绝对不正确!算法很菜的CODER一定不会是编程高手,就算你自己觉得自己设计模式很厉害,那只是自己觉得。算法很菜的设计模式高手设计的程序冲其量只是实现了功能而已,质量有多高,那就很难说了。相反,算法好的人,就算不会设计模式,他设计模式至少也有三分。
      所以,在学习设计模式过程中,加强一下算法方面的素养是很有必要的。不应该舍本逐末,缘木求鱼。

      以上就是我学习设计模式的一点体会。

 

你可能感兴趣的:(设计模式,设计模式,算法,数据结构,编程,面试,框架)