代码改变世界

如何学习设计模式

2005-07-11 11:47  netwy  阅读(2505)  评论(11编辑  收藏  举报
       古时候,青原惟信禅师这样描述自己的参禅过程:刚开始参禅时,世俗之见没有完全消除,"见山是山,见水是水";等到参禅许多天后,世俗之见越来越少,慢慢的也捂出了诸法皆空的真谛,就感觉自己是"见山不是山,见水不是水了,然而,这种感觉又落入了佛家所谓的“说空者滞空”的偏执境地(口头说自己捂到“空”的人,内心里都没有了却尘缘,因为过分追求某种境界的想法本身就粘了俗气);最终,经过不断的修为和对自身的思想的否定,达到“毕竟空”的最高境界,这时,山非山而山,水非水而水,自己终于大彻大悟。
   是不是觉得学习设计模式和参禅的过程很相似,刚开始,抱着<<设计模式>>仔细研究,逐个学习其意图和结构,在这个阶段的感觉是“看见模式就是模式”,狠不得在所有的系统中都应用设计模式;在这个阶段很容易陷入“过分设计”的陷阱。
   实践是学习设计模式的毕经阶段,经过一段时间的实践,发现隐藏在设计模式后面的设计原则和设计理念,越来越认识到所有的设计模式都不过是某些基本原则和理念的表现形式而已。现在我们就进入了“看见模式却不是模式”的崭新阶段。
   在经历了更多的学习、实践、再学习的过程后,我们已经领悟到oop的设计原则和设计理念,再重新研究设计模式时,我们会自觉或不自觉地把这些原则和理念与具体的模式联系起来,在实践开发中做到灵活的应用,最终的设计往往会有意无意的贴近设计模式,最后达到“既是模式又不是模式”的境界。
   不知大家觉得有没有道理,说出来,大家共同分享!