2008年11月5日星期三

设计模式解析-学习笔记(1)--引言

其实在大三的时候,就已经听说过Design Pattern这个概念了,只不过当时只是知道有这个名词的存在,而并不知道它的具体含义。

后来搞了一本Head First Design Pattern,断断续续的看了前几章,由于当时并没有实际的编码经验,所以看到Command Pattern的时候就卡壳了。在那个时候只使用过Singleton Pattern,而且用的还是那种最原始的实现方式。至于Factory Method啊,Strategy Pattern这些东西,只是在和同学扯淡的时候提提而已。

大三结束后就是实习了,实习让我有了从来没有过的编程经验,我敢说我大学前三年编的代码的总和也超不过5k行,而实习第一个月怎么也得突破10k了。可见我平时在学校的腐败生活… 面壁去。

随着实习工作的不断深入,接触到的东西也越来越多,我惊奇的发现在编写代码的时候,我开始领悟到一些设计模式的理念,比如子类延迟初始化、依赖倒置、抽象算法族、封装变化之类的思想。而且也发现,客户的需求总是在变化的,自己编写的代码灵活度太低,添加一点功能就得修改一大片,根本满足不了要求。

于是我又回想到了设计模式、敏捷开发这些曾经接触过的名词,正好在公司有几天不是很忙,就在闲暇的三天看完了Judith Bishop的那本C# 3.0 Design Patterns并敲完了上面大部分的代码,总算是对3大类23种设计模式有了一个初步的了解。

然而感觉这样有点太快了些,必须得承认自己的实力实在有限,短时间还没办法把设计模式这玩意彻底贯彻成大脑里的一种编程思想甚至是习惯,于是决定再来一遍,当然这次就不能再看那本书了(C# 3.0 Design Patterns这本书可以让人短时间了解设计模式在C#中的应用,但要提及思想的话,就差的有点远了),挑选了下,决定还是看这本设计模式解析第二版,毕竟是03年Jolt的得主。

在一开始,我先总结下自己现在对优秀的代码的理解吧:高内聚,低耦合,易扩展,易追踪错误,易读。而且我一直认为就像经济学、生物学这些学科一样,编程也是分微观和宏观的,可以把微观的编程看作为对具体编程语言的理解和应用,而把宏观的编程看作为对实际工程项目中对象的抽象和建模。不知道在看完这本书后这个理解会不会有变化。

引言到此结束,下把开始正式的内容。

没有评论: